我使用以下代码发布数据:
$.post("http://domain/page.aspx", postdata);
更新:
以下代码不起作用:
$.post("http://domain/page.aspx", postdata, function(data){alert(data);});
如何以字符串形式获取服务器响应?
我使用以下代码发布数据:
$.post("http://domain/page.aspx", postdata);
更新:
以下代码不起作用:
$.post("http://domain/page.aspx", postdata, function(data){alert(data);});
如何以字符串形式获取服务器响应?
使用回调函数
$.post("http://domain/page.aspx", postdata, function(result) {
alert(result);
$('divID').html(result);
});
我希望您遇到的是Same Origin Policy,这会阻止 ajax 跨域发布,除非服务器上支持并配置了CORS以允许来自页面来源的请求(并且正在使用的浏览器支持它)。
从你的评论
好的,我明白了。当我在它之后放置警报时,POST 具有“正在等待”状态。如果我删除警报页面正在更改(很难阻止它)。重定向前 POST 的状态为“已取消”。
我了解您是.post
在单击某个链接后拨打电话的。您需要取消点击事件,以便不跟随链接。
所以如果你有一些代码
$('a').click(function(){
$.post("http://domain/page.aspx", postdata, function(data){alert(data);});
});
将其更改为
$('a').click(function(e){ // added e as parameter which get the event
e.preventDefault(); // added this line which cancels the default action of the click
$.post("http://domain/page.aspx", postdata, function(data){alert(data);});
});
$.post()
在文档中有以下描述:
描述:使用 HTTP POST 请求从服务器加载数据。
jQuery.post( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] )
在哪里,
网址
Type: String
A string containing the URL to which the request is sent.
数据
Type: PlainObject or String
A plain object or string that is sent to the server with the request.
成功(数据,文本状态,jqXHR)
Type: Function()
A callback function that is executed if the request succeeds.
dataType
Type: String
The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html).
所以,
$.post("test.php", { "func": "getNameAndTime" },
function(data){
console.log(data.name); // John
console.log(data.time); // 2pm
}, "json");
返回 JSON 数据。因此,在此处使用您的 dataType 并相应地使用该功能。