首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只有当我将html页面上传到服务器时,Ajax才能工作。

只有当我将html页面上传到服务器时,Ajax才能工作。
EN

Stack Overflow用户
提问于 2013-08-07 14:44:37
回答 3查看 255关注 0票数 0

当html-文件未上载到我的服务器时,下面的代码返回"error“是正常的吗?如果是的话:为什么?不过,一旦我把它上传到我的服务器上,它就能正常工作了.

代码语言:javascript
运行
复制
<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>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-07 14:50:33

原因是不允许跨域ajax,当您在浏览器或本地主机上运行该文件时,它访问了另一个用于ajax调用的网站url,这是不允许的。

但是当您将它上传到同一台服务器上时,就没有跨域问题,所以成功消息。

为了允许跨域ajax调用,您应该使用JSONP

代码语言:javascript
运行
复制
$.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交叉域

票数 1
EN

Stack Overflow用户

发布于 2013-08-07 14:50:20

如果在jquery调用中使用jsonp类型,就可以避免使用“jsonp”。

在您的情况下,您可以这样做,因为您正在编写服务器和客户端。

票数 2
EN

Stack Overflow用户

发布于 2013-08-07 14:49:47

Javascript不是跨域的lang',所以您需要在同一个域中,或者允许它使用JSONP在加载页面本身。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18106490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档