如何使用ajax jquery跨域post方法

时间:2015-12-28 16:45:45

标签: jquery ajax cross-domain

我遇到了问题。我想使用其他域名发送数据。

这就是我的表现,但我没有成功。希望专家将解决我的问题

<script>
var url="http://domain/edit_0.xhtml";
$(document).ready(function(){
    $("button").click(function(){
        $.post(url,
        {
          css_sheet: "body",
          action: "edit_WAP2_sheet",
          hash: "a87691766060d24ebb69aa40e5f75f",
          submit: "submit"
         },
        function(data,status){
           alert("Status: " + status);
        });
    });
});
</script>

<button>Send</button>

当我使用http://时它不起作用。我想将网址设置为 http://domain/edit_0.xhtml

我希望,我会找到答案。

1 个答案:

答案 0 :(得分:0)

第一步是正确构建$.post()语句。 (见http://api.jquery.com/jquery.post/

由于$.post()只是$.ajax()的一个子集,我已经写出了下面的父声明,以帮助指导您朝着正确的方向发展。

var url="http://domain/edit_0.xhtml";

var datastring = "?css_sheet=body&action=edit_WAP2_sheet&hash=a87...75f&submit=submit";

$.ajax({
    url: url,
    data: datastring,
    type: "POST",
    crossDomain: true,
    success: function(e) {
        alert(e.responseText);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
        alert("Status: " + textStatus); alert("Error: " + errorThrown); 
    }
});

添加了成功和错误功能,以帮助您进行调试,并且可能不那么模糊,而且#34;它不起作用&#34;

此外,尽职调查,使用AJAX审核跨域指南(http://zinoui.com/blog/cross-domain-ajax-request

更新了错误处理

使用id="result"创建一个div以显示错误调试,并查看控制台日志更多详细信息。

error: function(jqXHR, textStatus, errorThrown) {
    $('#result').html('<p>status code: '+jqXHR.status+'</p><p>errorThrown: ' + errorThrown + '</p><p>jqXHR.responseText:</p><div>'+jqXHR.responseText + '</div>');
    console.log('jqXHR:');
    console.log(jqXHR);
    console.log('textStatus:');
    console.log(textStatus);
    console.log('errorThrown:');
    console.log(errorThrown);
}