Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jqueryajax似乎不起作用_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript jqueryajax似乎不起作用

Javascript jqueryajax似乎不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,这是我的HTML。只是一个简单的形式: <form> Username: <input type="text" id="username"/> <br/> Password: <input type="password" id="password"/> <br/> <input type="submit" id="submit" value="submit"/> <

这是我的HTML。只是一个简单的形式:

<form>
    Username:
    <input type="text" id="username"/>
    <br/>
    Password:
    <input type="password" id="password"/>
    <br/>
    <input type="submit" id="submit" value="submit"/>
</form>
单击submit按钮后,
$.ajax
函数将向URL发送一篇文章,我将在那里运行服务器

然而,从我的服务器端日志或firebug网络监控中,我没有看到POST方法的任何迹象。(第一个
警报已触发,但第二个未触发。)

它们是我开发的两个不同的应用程序,所以在我做了一些研究之后,这里有一个解释:

由于
$.ajax()
使用
XMLHttpRequest
,因此它受XHR的跨域限制。您的SiteA和SiteB是否位于不同的主机/端口上?如果是这样,您看到的是预期的行为


是这样吗?如果有,是否有解决办法

您需要
返回false,以防止默认提交表单。尽管一旦您阻止表单提交,您仍然会受到跨域限制,这不是一个很容易解决的问题。寻找可能的解决方案。

您需要
返回false,以防止默认提交表单。尽管一旦您阻止表单提交,您仍然会受到跨域限制,这不是一个很容易解决的问题。寻找可能的解决方案。

将事件处理程序更改为此

function init(){
$("#submit").click(function(event) {   
    event.preventDefault();

    var url = "http:example.com/mail";
    alert("what?");
    $.ajax(url, {
        type : 'post',
        data : {
            'username' : $("#username").val(),
            'password' : $("#password").val()
        },
        success : function() {
            alert("done");
        }
    });
});
}

这将阻止表单实际向服务器进行完整发布。

将事件处理程序更改为此

function init(){
$("#submit").click(function(event) {   
    event.preventDefault();

    var url = "http:example.com/mail";
    alert("what?");
    $.ajax(url, {
        type : 'post',
        data : {
            'username' : $("#username").val(),
            'password' : $("#password").val()
        },
        success : function() {
            alert("done");
        }
    });
});
}
这将阻止表单实际向服务器发送完整的帖子。

我认为这会起作用

function init(){
$(“#提交”)。单击(功能(事件){
event.preventDefault()

})); }

我想这会管用的

function init(){
$(“#提交”)。单击(功能(事件){
event.preventDefault()

}));
}

您使用Ajax这样做有什么原因吗?正常的表单提交是否有效?如果是这样,你就不必担心跨域限制我建议将您的函数绑定到表单的提交,而不是按钮的单击;这样,您可以在键入密码后按enter键。在明文中发布密码时要小心。您使用Ajax这样做有什么原因吗?正常的表单提交是否有效?如果是这样,你就不必担心跨域限制我建议将您的函数绑定到表单的提交,而不是按钮的单击;这样,你可以在输入密码后按enter键。在明文中发布密码时要小心。Thanx,现在我记得我以前也遇到过类似的情况。这就是限制,不是吗?起源铬-extension://dblkghnlgboodeflkimkclllhcgikcam 是Access-Control-Allow-Origin.Thanx不允许的,现在我记得我以前也有过类似的情况。这就是限制,不是吗?起源铬-extension://dblkghnlgboodeflkimkclllhcgikcam 访问控制允许来源不允许。我允许,但仍有一个限制阻止我发布它。谢谢你,明白了。。。我确实做了,但是仍然有一个限制阻止我发布它。谢谢你,明白了。。。那个该死的跨浏览器的东西:)