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

时间:2014-11-19 15:13:03

标签: 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(response) { console.log("success."); },
        error: function(XMLHttpRequest, textStatus, errorThrown) { console.log("error."); },
        complete: function() { console.log("complete."); }
    });
});
  • 它会显示一条提示jQuery180014405992737595236_1357861668479 was not called 的警告(数字是从其他问题复制的) 我认为原因在于,当它不是时,它会期待页面的json结果。
  • 在Chrome中,它说Uncaught SyntaxError: Unexpected token <引用了返回的php页面,所以我假设我的代码不希望返回那种文件。

总而言之,这可行,但需要修复jQuery警报和控制台错误,我认为正确的方法是正确处理返回的结果页面。 我希望你们能帮助我解决这个看起来非常简单的任务,但我真的很陌生。感谢

删除dataType:'jsonp'或将其更改为'json'会导致我的脚本未被执行并收到以下错误:

  • XMLHttpRequest cannot load http://www.example.com/page.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://myserver.com/myPage' is therefore not allowed access.

1 个答案:

答案 0 :(得分:0)

  

我认为原因是它期待页面的json结果

期待JSONP的回应。 (JSONP不是JSON)。你说:

dataType: 'jsonp',

...明确强制jQuery将响应视为JSONP(并且作为副作用,GET)。

  

返回的php页面,所以我假设我的代码不希望返回那种文件。

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

您需要:

  • 不要告诉你的脚本期待JSONP。 (请注意,您可能必须在服务器上配置CORS以处理相同的原始问题)
  • 更改PHP以返回JSONP
相关问题