我遇到了一个问题。我想使用另一个域发送数据。
我就是这样做的,但没有成功。希望专家能解决我的问题
<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);
}