Content

关于Ajax的疑难杂症详解(ajax的例子)怎么可以错过

文章摘要

本文主要介绍了如何解决使用jQuery封装的AJAX请求本地PHP文件时遇到的CORS策略阻止问题。文章指出,由于返回的数据不是正确的JSON格式,导致服务器拒绝请求。解决方案包括设置Header头,允许所有域名或特定域名访问,并确保返回的数据为正确的JSON格式。此外,文章还讨论了AJAX的异步性质,提醒开发者避免关闭异步操作以防止浏览器被锁死。通过这些方法,可以有效解决AJAX跨域请求中的问题。


目录跨域问题解决方案请求成功进error问题总结

如图所示,这是通过jquery封装的ajax请求了一个本地的php文件(无框架),console提示CORS策略已阻止“来自来源”的“null”:请求的资源上不存在“访问控制允许来源”标头。

设置header头

允许所有域名请求

允许一个域名请求

<?php header(“Access-Control-Allow-Origin: *”); function index(){ sleep(2); return json_encode([‘code’=>8888888]); } echo index(); ?>

这多半是因为你要求返回的是json格式的数据,但实际返回的数据不是正确的json数据

<script> var data={ parent:1 } $.ajax({ type: “POST”, url: “http://127.0.0.1”, dataType:’json’, success: function (response,index,obj) { console.log(obj.done(function() { //延迟请求成功后的回调 alert(“$.get succeeded”); })); console.log(index); //log success console.log(“成功”,response); //请求成功返回的数据 }, error(res){ console.log(“失败”,res); } }); </script>

Ajax的第一个字母是asynchronous的开头字母,这意味着所有的操作都是并行的,完成的顺序没有前后关系。$.ajax()的async参数总是设置成true,这标志着在请求开始后,其他代码依然能够执行。强烈不建议把这个选项设置成false,这意味着所有的请求都不再是异步的了,这也会导致浏览器被锁死。

到此这篇关于Ajax的疑难杂症的文章就介绍到这了,更多相关Ajax疑难杂症内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:完美解决ajax跨域请求下parsererror的错误解决ajax返回验证的时候总是弹出error错误的方法详谈ajax返回数据成功 却进入error的方法