移动端ajax请求问题?

我有两个问题,一个是我写了一个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).')';
阅读 4.8k
4 个回答

两个问题:
1.js里面不能写localhost,得把手机和电脑连在同一网络下,然后js中localhost改成电脑的ip
2.jsonp回调函数名没有指定,需要发送请求的时候也指定回调函数名,

其实我觉得开启CORS跨域比jonsp更方便

你本地调试 用手机请求电脑服务器不能用localhost 你得用你的电脑局域网ip 而且手机得用wifi链接局域网

你的jsonp没设置回调函数即jsonpcallback,出错是必然的

前端js代码如下:

console.log(resdata);

php代码如下:

header('content-type: application/json');

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进