Asp.net mvc $。帖子不起作用,我在firebug中没有得到答案
我正在尝试从我的asp.net mvc Web服务接收一些json。 ASP.NET: 当我使用http analyzer发送测试post消息时,我得到:Asp.net mvc $。帖子不起作用,我在firebug中没有得到答案,asp.net-mvc,jquery,getjson,Asp.net Mvc,Jquery,Getjson,我正在尝试从我的asp.net mvc Web服务接收一些json。 ASP.NET: 当我使用http analyzer发送测试post消息时,我得到: Tue May 01 11:24:59 CEST 2012 ---------------------------------------- POST http://xxx.xxx.xxx.xxx/tracy/chat/getMessagesFromFriend?email=linsy&friendmail=d
Tue May 01 11:24:59 CEST 2012
----------------------------------------
POST http://xxx.xxx.xxx.xxx/tracy/chat/getMessagesFromFriend?email=linsy&friendmail=djcarre
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 01 May 2012 09:25:04 GMT
Content-Length: 309
----------------------------------------
----------------------------------------
[{"sender":"viagsm","receiver":"djcarre","datetime":"28/04/2012 16:55:33","message":"msg1"},{"sender":"viagsm ","receiver":"djcarre","datetime":"28/04/2012 16:55:59","message":"msg2"},{"sender":"Philippe C","receiver":"linsy","datetime":"28/04/2012 16:56:10","message":"test3"}]
----------------------------------------
所以它返回了我的json。
我的javascript代码如下所示:
$.post("http://xxx.xxx.xxx.xxx/tracy/chat/getMessagesFromFriend?email=linsy&friendmail=djcarre", function(data) {
if (data.length > 0) {
for (x in data) {
$("#chatarea").html(
$("#chatarea").html() +
"<p><b>" +
data[x].sender + "</b>" +
" (" + data[x].datetime.match(/(\d+:\d+:\d+)/)[1] + ") : " +
data[x].message + "</p>");
}
}
}, "json");
但我只得到一个空警报,所以有一个错误,但我不知道是哪一个,以及如何解决它。
我希望有人知道如何帮助我
您似乎已经为AJAX请求指定了一个绝对地址:
http://xxx.xxx.xxx.xxx/tracy/chat/getMessagesFromFriend?email=linsy&friendmail=djcarre
由于浏览器内置的限制,您无法发送跨域AJAX请求。这取决于您对远程域的控制级别。$.post(url、para、successFunction、ErrorFunction)您忘记将para参数放入函数中。
因此,它不起作用。是的,正如Darin所提到的,您应该注意源策略,因此您的ajax调用应该位于为您编写javascript的页面提供服务的同一个域和子域上 另一种跟踪方法是: -检查ajax调用是否到达服务器?为此,您可以更新数据库中的某些表,也可以将包含POST数据内容的文件放在本地驱动器上,并作为带有时间戳的文件转储。如果此步骤失败,则意味着您的请求根本没有到达服务器,因此您应该了解这是否是跨站点ajax问题,为此,您需要将文件放在为页面提供服务的同一服务器上,然后使用ASP.NET通过服务器调用实际的服务/页面内容,从而解决此问题
- 如果之前的检查通过,请确保转储您发送的任何输出,并查看您发送的内容
这应该会有帮助,祝你好运。经过大量搜索,我发现: 它为我的问题提供了解决办法 因为我的脚本在移动电话上运行,而Web服务在远程服务器上运行,所以我不得不使用jsonp。
谢谢你的帮助 您是仅尝试发布到应用程序域还是发布到其他域?
error:function(jqXHR, textStatus, errorThrown){
alert(errorThrown);
}
http://xxx.xxx.xxx.xxx/tracy/chat/getMessagesFromFriend?email=linsy&friendmail=djcarre