原因:
- 不同域名或端口导致的js跨域问题
- jsonp不是ajax请求,浏览器不会验证跨域问题
使用jsonp方式请求可以解决跨域问题
jq代码
$.ajax({
url:url_path, //url路径
type:'post',
async:true,
dataType: "jsonp", // 设置服务器返回jsonp格式数据
data:data_str, // 发送的数据
success:function(result){
// 返回后的回调函数
}
});
php后台代码
public function online() {
// $_GET['callback']为jsonp自动传递的参数,可在jq的请求中看到
echo $_GET['callback'].'({
"code": "00",
"msg": "提示信息"
})';
}
返回的jsonp数据
//格式
return callback + "(" + json_str + ")";
//例子
jQuery22407707975361842749_1600674229410({code: "00", msg: "提示信息"})