当html-文件未上载到我的服务器时,下面的代码返回"error“是正常的吗?如果是的话:为什么?不过,一旦我把它上传到我的服务器上,它就能正常工作了.
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
function validate() {
$.ajax({
type:'POST',
url:'http://www.mywebsite.com/formvalidate.php',
data:{
},
dataType:'json',
success:function (data) {
alert('success');
},
error:function (XMLHttpRequest, textStatus, errorThrown) {
alert('error');
}
});
}
</script>
</head>
<body>
<input type=button onclick="validate();" value="Click me"/>
</body>
发布于 2013-08-07 14:50:33
原因是不允许跨域ajax,当您在浏览器或本地主机上运行该文件时,它访问了另一个用于ajax调用的网站url,这是不允许的。
但是当您将它上传到同一台服务器上时,就没有跨域问题,所以成功消息。
为了允许跨域ajax调用,您应该使用JSONP
$.ajax({
url:"testserver.php",
dataType: 'jsonp', // Notice! JSONP <-- P (lowercase)
success:function(json){
// do stuff with json (in this case an array)
alert("Success");
},
error:function(){
alert("Error");
},
});
参考资料:- jQuery AJAX交叉域
发布于 2013-08-07 14:50:20
如果在jquery调用中使用jsonp
类型,就可以避免使用“jsonp
”。
在您的情况下,您可以这样做,因为您正在编写服务器和客户端。
发布于 2013-08-07 14:49:47
Javascript不是跨域的lang',所以您需要在同一个域中,或者允许它使用JSONP在加载页面本身。
https://stackoverflow.com/questions/18106490
复制相似问题