今天迁移一个站点时遇到一个坑爹问题,同一个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请求
----------------------------------------------------------------------------------------------------------------
答案已经找到: