Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.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
Javascript 如何获取jQuery Ajax请求返回的PHP页面_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 如何获取jQuery Ajax请求返回的PHP页面

Javascript 如何获取jQuery Ajax请求返回的PHP页面,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,因此,我必须向php页面发送一些数据,它将根据我的数据返回另一个php页面 我通过以下方式发送数据: $(document).ready(function() { $.ajax({ url: '//www.example.com/page.php', type: "post", dataType: 'jsonp', data: { myvar:myvalue }, success: function(res

因此,我必须向php页面发送一些数据,它将根据我的数据返回另一个php页面

我通过以下方式发送数据:

$(document).ready(function() {
    $.ajax({
        url: '//www.example.com/page.php',
        type: "post",
        dataType: 'jsonp',
        data: { myvar:myvalue }, 
        success: function(response) { console.log("success."); },
        error: function(XMLHttpRequest, textStatus, errorThrown) { console.log("error."); },
        complete: function() { console.log("complete."); }
    });
});
它显示一条警告,称jQuery180014405992737595236_1357861668479未被呼叫。号码是从其他问题复制过来的 我认为原因是它期望从页面得到一个json结果,而事实并非如此。 在Chrome中,它表示未捕获的SyntaxError:意外标记 我认为原因是它期望从页面得到一个json结果

它期待一个JSONP响应。JSONP不是JSON。你说:

dataType: 'jsonp',
…这显式地强制jQuery将响应视为JSONP,并且作为副作用,GET

返回的php页面,因此我假设我的代码不希望返回这种类型的文件

服务器不应该返回PHP页面。它应该执行PHP代码并返回任何输出。它看起来像是在输出HTML

您需要:

不要让脚本期望JSONP。请注意,您可能需要在服务器上配置CORS来处理同源问题或其他问题 更改PHP以返回JSONP
php脚本是否与示例中执行javascript的域不同,javascript是否在www.example.com页面上运行?请尝试去掉数据类型参数,服务器将返回HTML。如果服务器没有发送一致的响应,您可能必须从字符串中解码JSON。并且数据类型jsonp确实要求返回JSON,如果您期望的是HTML,请将其更改为htmldoes,以便php页面知道它是通过jsonp调用的?您不能在任何随机服务器上发出json请求——服务器必须知道如何正确响应。如果您得到了not called错误,那么我猜服务器不支持jsonp,并且没有使用正确的JS回调函数包装器输出。我想我需要指定发送的数据是json,但它给了我一些错误,这些错误得到了修复,将其更改为jsonp,我是否应该将其保留为json,或者只是删除那一行?我的脚本正在将数据发送到另一台我无法控制的服务器,所以我只能更改我提供的代码。它将返回一个html,但我不知道我的代码中有什么错误以及如何获取返回的页面。@Dane411-我告诉过你代码中有什么错误。您告诉jQuery将响应视为JSONP。响应不是JSONP。如果服务器不授予您指示访问者浏览器通过CORS从中获取数据的权限,那么您就不能使用Ajax直接访问它。