如何使用ajax jquery跨域发布方法



我遇到了一个问题。我想使用另一个域发送数据。

我就是这样做的,但没有成功。希望专家能解决我的问题

<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://时,它不起作用。我想将url设置为http://domain/edit_0.xhtml

我希望,我会找到我的答案。

第一步是正确构建$.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); 
    }
});

添加了成功和错误功能来帮助您调试,并且可能比"它不起作用"更不模糊

此外,为了进行尽职调查,请查看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);
}

相关内容

  • 没有找到相关文章

最新更新