Javascript 为什么Ajax将数据发布到localhost而不是提供的URL?

Javascript 为什么Ajax将数据发布到localhost而不是提供的URL?,javascript,jquery,ajax,Javascript,Jquery,Ajax,因此,我使用Ajax将表单发布到服务器上,但是,它不是将表单发送到URL,而是将表单发送到自身 这是密码 $("#psignup").click(function() { $.ajax({ type: "POST", url: "example/default/mobile_user_register", data: $("#patientsignup").serialize(), // serializes the fo

因此,我使用Ajax将表单发布到服务器上,但是,它不是将表单发送到URL,而是将表单发送到自身

这是密码

$("#psignup").click(function() {
    $.ajax({
           type: "POST",
           url: "example/default/mobile_user_register",
           data: $("#patientsignup").serialize(), // serializes the form's elements.
           success: function(data)
           {
               alert(data); // show response from the php script.
           }
         });

    return false; // avoid to execute the actual submit of the form.
});
在浏览器中,它似乎将发件人发送到
http://localhost:8080/?email=asdfa%40asd.com&password=asd&repeatpassword=&firstname=asd&username=&lastname=asd


当然,我要找的是“”。你能帮我理解为什么这不起作用吗?

你不能使用javascript AJAX发布到另一个URL-->这被大多数浏览器阻止。

它不知道
example/default/mobile\u user\u register
是你的域名。试试看

如果我正确理解您的意思,并且托管此代码的域是example.com,但您试图调用example.net,那么AJAX安全性明确禁止这样做

你需要做的是在你的服务器上设置一个小小的cgi代理,它接受你想打的电话,获取数据并将其返回给你

假设您使用的是PHP,那么您的调用将类似于
myProxy.PHP?destination=http://example.net/whatever

然后,代理将获取它在该目的地发现的内容,并在响应中返回

使用


然后将完整的URL放在代码中,包括“http://”部分。我做了,但它不起作用。在Google上跨域搜索ajax有关此主题的信息:同源策略那么有其他方法将表单发布到服务器并获得响应吗?您可以将表单发布到其他服务器,但不能通过ajax。您可以发布到自己的域(如果您有这种能力),然后使用类似CURL的方法将其发送到另一台服务器。@Collin实际上,我正在将其发布到自己的doamain,但服务器是用web2py编写的。因此index.html位于www.domain.com/application/views/default/中,其中控制器(mobile_user_register)由www.domain.com/application/default/mobile_user_login调用。有没有办法重定向它?这不是唯一的选择(尽管这是一个很好的选择)。还有JSONP和CORS。是的,这就是我的意思。然而,服务器代码是用web2py编写的,我对此一无所知。我该怎么做?@Dr.Dredel抱歉我忘了给你贴标签了。ThanksJSONP是一个好主意,但如果他想发布的数据太大(因为它实际上不能用JSONP发布,只能获取)它就不能立即工作。@ColinDeClue你说得对,但我只是向他建议了一种可能符合要求的方法。是的,我只是想指出这一点,这样他就可以提前知道限制。如果这对他没有影响,那么这是一个很好的解决方案。
$.ajax({
    url: "http://example.com/default/mobile_user_register?xxxxxxxxxxxxxx",
    dataType: 'jsonp', //use jsonp data type in order to perform cross-domain ajax 
    crossDomain: true, 
    data: data, 
    success: callback,
    error: callback
});