Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 返回空字符串的Ajax POST_Jquery_Ajax - Fatal编程技术网

Jquery 返回空字符串的Ajax POST

Jquery 返回空字符串的Ajax POST,jquery,ajax,Jquery,Ajax,我一直试图通过ajax从另一个站点访问数据,但失败了。 这种情况是,如果我通过表单将数据发布到站点,那么我将被重定向到该站点并显示正确的数据。 我想做的是我希望我的脚本使用ajax获取数据。 我想澄清的一点是,我不能修改服务器端的脚本,以便添加访问控制允许源代码标题 他们有什么诡计或手段让我得到数据吗 $(document).ready(function(){ $.ajax({ type: 'POST',

我一直试图通过ajax从另一个站点访问数据,但失败了。 这种情况是,如果我通过表单将数据发布到站点,那么我将被重定向到该站点并显示正确的数据。 我想做的是我希望我的脚本使用ajax获取数据。 我想澄清的一点是,我不能修改服务器端的脚本,以便添加
访问控制允许源代码
标题

他们有什么诡计或手段让我得到数据吗

$(document).ready(function(){
                $.ajax({
                    type: 'POST',
                    url: 'http://somedomain.com/FlightStatus.aspx',
                    data: {ArrFltStatus:'KDU',DepFltStatus:'ISB',DropDownDay:'today',Submit:'Proceed'},
                     success: function(data){
                        alert(data);
                    },
                    error:function(xhr,err){
                        alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
                        alert("responseText: "+xhr.responseText);
                    }
                });
            });

在请求跨域资源时,您应该在ajax选项中使用数据类型:“jsonp”属性。

如果他们有一个jsonp接口,请使用它(这对POST不起作用)


否则,您需要在服务器上使用代理脚本来执行远程访问,以便您的JavaScript可以访问同一域上的资源。

在使用脚本检索本地macine上的数据时,我也遇到了同样的问题,但是当我把我的调用脚本上传到我请求数据的服务器上时,我就可以正常工作了


这是因为域安全性不允许我从宿主服务器检索数据。

跨域请求只能使用JSONP完成,JSONP只支持GET和$。ajax默认为GET,因此根本不需要设置类型:

$.ajax({
   url: 'http://somedomain.com/FlightStatus.aspx',
   data: {ArrFltStatus:'KDU',DepFltStatus:'ISB',DropDownDay:'today',Submit:'Proceed'},
   dataType : 'jsonp',
}).done(function(data) {
     alert(data);
});
错误处理程序不是用JSONP激发的,所以也不需要使用它


如果您请求数据的服务不支持JSONP,您可以使用Yahoo的YQL设置一个管道,让您以JSONP格式获取数据。

由于安全预防措施,跨源请求被阻止与它接受的内容无关,它被浏览器作为安全措施阻止。只允许使用JSONP,并且JSONP只支持GET请求。好的,那么远程服务器与您尝试使用ajax重设数据的服务器相同吗?