我有两个问题,一个是我写了一个ajax请求,我想请求我本地服务器上的php文件,直接写本地路径和服务器路径时候,都会报错,告诉我需要跨域,于是我用jsonp去请求数据,写入的是服务器上的地址,虽然可以进行请求了,可是请求后并没有弹success里的信息,总是弹error里的信息,但是还是可以接收到我想要的数据,所以我想问下为什么会这样?
第二个问题是以上的测试一开始都是在PC端chorme下的开发者根据的模拟移动设备下进行的,接着我在手机上打开我本地地址,发现手机上ajax并没有进行请求,尝试去alert,error里的alert都没有弹,请求大神解惑~~~
前端js代码如下:
// ajax跨域请求数据
function loadPHP() {
var request = $.ajax({
url: "http://localhost/demo.php",
type: "get",
dataType: "jsonp",
success:function (data) {
console.log(data);
},
error: function () {
alert( "Request failed: " );
}
});
alert(request);
}
function callback(res) {
alert(res);
}
php代码如下:
header('content-type: application/json');
$a = array('name'=>'tom');
echo 'callback('.json_encode($a).')';
两个问题:
1.js里面不能写localhost,得把手机和电脑连在同一网络下,然后js中localhost改成电脑的ip
2.jsonp回调函数名没有指定,需要发送请求的时候也指定回调函数名,
其实我觉得开启CORS跨域比jonsp更方便