后端json格式化如下
{"code":"100","msg":"\u7b7e\u540d\u9519\u8bef\uff01","data":[]}
不是callback({"code":"100","msg":"\u7b7e\u540d\u9519\u8bef\uff01","data":[]})
前端真么跨域请求才能顺利取到json
后端json格式化如下
{"code":"100","msg":"\u7b7e\u540d\u9519\u8bef\uff01","data":[]}
不是callback({"code":"100","msg":"\u7b7e\u540d\u9519\u8bef\uff01","data":[]})
前端真么跨域请求才能顺利取到json
跨域Ajax首选的是jsonp。如果后端给定的只是一个字面量形式的数据,前端是不能解析的,只能通过后端程序进行二次加工后才能解析。so,题主的{**}这样的字面量形式如果返回给前端处理只能说明一下两个问题:
后端偷懒了,并没有加工数据
后端故意刁难前端
所以,祝题主好运了
一般跨域有两种方法JSONP和CORS。
如果不需要兼容旧浏览器(IE8以下),建议用CORS,因为这样才能用GET以外的方法,而且不会有XSS(跨站脚本攻击)的风险。
CORS需要在服务器上配置,不同服务器的配置方法不同。
如果要兼容IE8-9,还需在页面使用XDomainRequest对象。
后端应该返回jsonp,即json数据包上一层 callback函数
比如 callback({"code":"100","msg":"u7b7eu540du9519u8befuff01","data":[]})
ajax:
$.ajax({
type: "GET",
data: {opid:id,u:u},
url : window.VotePostAjax,
dataType:"jsonp",
jsonp:'callback',
jsonpCallback:"jsonpCallback",
success:function(data){
},
error:function(err){
}
})
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
前端无法处理的,让后端解决吧
解决跨域的问题思路
1.赋值法var data=...,用script标签引入获得全局变量
2.json地址和页面地址同源
3.设置cors
4.返回jsonp格式 比如输出 callback(data)..