今天迁移一个站点时遇到一个坑爹问题,同一个jsonp接口在跨域时都能调用成功,但是在同域下调用虽然成功,但是数据却有问题. 此处贴出我的后端代码片段
$mi_id = htmlspecialchars(trim($_GET['mi_id '])); $mi_cv = htmlspecialchars(trim($_GET['mi_cv ']));
贴出我前端代码片段:
$.ajax({ url: jsonp_login_url, data: data, type: 'POST',// 此处修改成 GET 就没有问题 dataType: 'jsonp' }).success(function(res)
注意看 我标识出的代码,
当使用 post 类型时,虽然提交的 dataType 设置成 jsonp 但是在后端 $_GET 是取不到参数的,
按我的理解, jsonp 应该就是 动态创建了一个 script 标签而已啊,为什么会有这个问题呢?
我搜了下一些资料,没有找到原因在哪? 不过找到了一种新的跨域解决方案: CORS
http://www.360doc.com/content/14/0106/11/15643_343005039.shtml
倒是蛮有意思的一个跨域方案...
有人知道的给我个回复
我好奇的是 发出 jsonp 请求时正常来说 应该是创建 script标签 然后get 一个url 地址才对啊
但是 同域下 jquery 创建script 标签时却可以发出 post 请求
----------------------------------------------------------------------------------------------------------------
答案已经找到:
写道
同域下 jquery jsonp post的问题我找到答案了 jsonp支持post,那么内部机制便不是使用inject script标签的机制。而是隐藏的iframe+form表单提交。此时server端就要去读取form数据,而非get
相关推荐
html通过 ajax jsonp跨域请求接收和传送数据 使用HTML页面与后台跨域交互,获得后台数据或传输数据给后台
Angular中的数据请求 内置模块HttpClient实现(get post jsonp 以及第三方模板axios请求数据示例代码.zip
基于ajax方式的跨域请求jsonp的前后台代码
Angular中的数据请求 内置模块HttpClient实现(get post jsonp 以及第三方模板axios请求数据(32分12秒)
基于jQuery的jsonp ajax跨域请求,
在页面a中由前端发送一个jsonp请求到客户方,得到一个token值 前端得到token值后向自己后端发送一个请求,后端根据token去redis(token的值就是redis里的key)里取值(key=token的值,value=用户信息等)判断用户是否已...
ajax跨域CORS方案 JSONP跨域请求方案.zip
利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
PHP AJAX JSONP实现跨域请求使用范例
ajax的同步异步请求,分别用 jquery和 javascript的方式另外和 jsonp 的请求方式
该资源为ASP.NET网站开发技术中使用Ajax进行跨域请求时利用JSONP方案解决浏览器同源策略限制的源码,比较简单,仅供参考
js解决跨域请求
php版跨域 ajax+jsonp例子源代码.zip
Vue-JSONP 一个用于处理JSONP请求的微型库。快速开始作为Vue插件: import { VueJsonp } from 'vue-jsonp'// Vue Plugin.Vue . use ( VueJsonp )// Now you can use this.$jsonp in Vue components.const vm = new ...
一般的解决方案是使用服务器代理(由同域服务器跨域请求后返回),但导致过于复杂(参见:Java-webservice-CXF-SOAP服务.docx服务器代理)。 如果服务器能够操作,也可以使用JSONP允许跨域请求。
JSONP简单调用实例。ASP.NET和纯HTML。jQuery的$.ajax的调用!jsonP说白了,就是在json字符串外面包上一个:参数名称+左右括弧!只是包了个:jsonpCallback() 而已! 相关文章:...
JSONP实现跨域 常用的jquery实现跨域调用 $.ajax({ url: "http://127.0.0.1/~chenjiebin/mycode/php/crossdomain/index.php", dataType: "jsonp", jsonp: "callback", context: document.body, success: ...
ajax跨域请求,jquery.jsonp插件
JSONP 实例
前端使用jquery,datatype采用jsonp,服务端采用C#编写的webService