Ajax提交跨域请求
2017-05-11 11:23
411 查看
当Ajax提交的请求为跨域的时候会提示错误:已拦截跨源请求:同源策略禁止读取位于 http://****** 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。解决方法一:使用jsonp进行请求 $(document).ready(function () { $.ajax({ type: "GET",//请求方式:GET async: false,//是否异步:否 cache: false,//是否缓存:否 timeout: 200,//请求超时响应:200s url: "http://****",//请求url data: "",//请求参数 dataType: "jsonp",//数据类型:jsonp crossDomain: true,//是否跨域:是 jsonp: "callback",//callback或者jsoncallback或者jsonpcallback;传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback) jsonpCallback: "callback",//自定义jsonp回调函数名称,可以随意起名,或者根据项目规范命名,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据;若自定义的函数名是js中的function会执行下面函数function complete: function () { //hideLoadingMsg(); // 数据获取完成后,需要做的事,此为隐藏读取数据的滚动条。 }, success: function (json) {//请求成功:此处传回来的数据为:my({'msg': 'OK', 'code': 0, 'data': {'appinstall': '2000'}}) }, error: function () {//请求异常:网络断开或者 } });但是要注意服务器返回的值需要特定的格式
my({'msg': 'OK', 'code': 0, 'data': {'appinstall': '2000'}})不然会提示无法解析的错误.json与jsonp的区别 点击打开链接方法二:在服务器端口的返回头中加入 Access-Control-Allow-Origin $respArray=$this->get('promotion_service')->getcity();$response = new Response ( json_encode ( $respArray ), 200 );$response->headers->set ("Access-Control-Allow-Origin","*");//*代表允许所有的请求,可以换为制定的地址$response->headers->set ( 'Content-Type', 'application/json' );
相关文章推荐
- Ajax异步(请求)提交类 支持跨域
- ajax 跨域请求以及跨域cookie提交
- ie9 ajax 跨域请求不了 提交为空 jquery-ajaxtransport-xdomainrequest
- (跨域)jquery.ajax提交请求并返回json数据
- 浅谈jquery中ajax跨域提交的时候会有2次请求的问题
- 表单ajax提交不跳转,清空input框值以及php跨域请求数据总结
- ajax 跨域封装 JSONP方式 默认还是GET提交请求
- 20180204.ajax提交注册数据;axios跨域请求得到json字符串;实现注册功能
- 【转载】Ajax JS 跨域请求
- AJAX(XMLHttpRequest)进行跨域请求方法详解(二)
- jquery的ajax跨域请求jsonp解决方法
- bcompare文件对比工具,发ajax请求,ajax跨域方法
- ajax是否能跨域请求,解决的办法
- jquery.ajax 跨域请求webapi,设置headers
- 原生JS实现Ajax跨域请求flask响应内容
- AJAX 跨域请求 - JSONP获取JSON数据(详解-示例)
- Ajax的jsonp跨域请求样例
- 用jsonp解决ajax跨域请求
- AJAX 跨域请求 - JSONP获取JSON数据