Javascript 如何获取jQuery Ajax请求返回的PHP页面
因此,我必须向php页面发送一些数据,它将根据我的数据返回另一个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
$(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直接访问它。