所以我必须将一些数据发送到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结果。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.
答案 0 :(得分:0)
我认为原因是它期待页面的json结果
期待JSONP的回应。 (JSONP不是JSON)。你说:
dataType: 'jsonp',
...明确强制jQuery将响应视为JSONP(并且作为副作用,GET)。
返回的php页面,所以我假设我的代码不希望返回那种文件。
服务器不应该返回PHP页面。它应该执行PHP代码并返回任何输出。看起来它正在输出HTML。
您需要: