ajax不会成功
问题描述:
我试图从我的webapi服务器获取数据。调试显示ajax不会成功
GET http://localhost:62578/api/DB [HTTP/1.1 200 OK 2ms]
但我不打成功,而是我打错误,没有数据传递到错误的功能?
var records;
var loadedData = new Array();
$.ajax({
type: 'GET',
dataType: 'json',
accept: "application/json",
url: 'http://localhost:62578/api/DB',
//data: { a:'a' },
// contentType: 'application/json; charset=utf-8',
success: function(data) {
//I never get here.
$.each(data, function (key, val) {//key is the row number, val is the object data below
$.each(val, function (key2, val2) {//key2 is the array element name, val2 is the data.
if (key == 0) loadedData.push(key2); //we only need one row of collumns
});
records = key;
init(loadedData);
});
},
error: function(jqXHR, exception) {
//both return undefined.
}
});
webapi服务器日志。
jttp = HTTP FYI(愚蠢的堆栈溢出)
iisexpress.exe Information: 0 : Request, Method=GET, Url=jttp://localhost:62578/api/DB, Message='jttp://localhost:62578/api/DB'
iisexpress.exe Information: 0 : Message='DB', Operation=DefaultHttpControllerSelector.SelectController
iisexpress.exe Information: 0 : Message='MvcApplication1.Controllers.DBController', Operation=DefaultHttpControllerActivator.Create
iisexpress.exe Information: 0 : Message='MvcApplication1.Controllers.DBController', Operation=HttpControllerDescriptor.CreateController
iisexpress.exe Information: 0 : Message='Selected action 'GetAllProducts()'', Operation=ApiControllerActionSelector.SelectAction
iisexpress.exe Information: 0 : Operation=HttpActionBinding.ExecuteBindingAsync
iisexpress.exe Information: 0 : Message='Action returned 'MvcApplication1.Models.DataBase[]'', Operation=ReflectedHttpActionDescriptor.ExecuteAsync
iisexpress.exe Information: 0 : Message='Will use same 'JsonMediaTypeFormatter' formatter', Operation=JsonMediaTypeFormatter.GetPerRequestFormatterInstance
iisexpress.exe Information: 0 : Message='Selected formatter='JsonMediaTypeFormatter', content-type='application/json; charset=utf-8'', Operation=DefaultContentNegotiator.Negotiate
iisexpress.exe Information: 0 : Operation=ApiControllerActionInvoker.InvokeActionAsync, Status=200 (OK)
iisexpress.exe Information: 0 : Operation=DBController.ExecuteAsync, Status=200 (OK)
iisexpress.exe Information: 0 : Response, Status=200 (OK), Method=GET, Url=jttp://localhost:62578/api/DB, Message='Content-type='application/json; charset=utf-8', content-length=unknown'
iisexpress.exe Information: 0 : Operation=JsonMediaTypeFormatter.WriteToStreamAsync
iisexpress.exe Information: 0 : Operation=DBController.Dispose
答
我觉得你的JavaScript代码位于不同的端口上;也许端口80,你的json请求位于端口62578. Ajax请求只允许在同一个域,协议和端口。
为了解决您的问题,您需要使用JSONP数据类型或任何其他类似的机制(服务器端解决方案)。
结帐wikipedia了解更多关于JSONP的信息。
签出此example关于如何使用JSONP与jQuery ajax调用。
结账*对于类似的问题。
+1
啊好的Aboodred1,我跟着你。 – user2144480 2013-03-15 13:52:37
你使用本地主机还是只是一个'localhost:62578/api/DB'的例子?请确保添加'http://' – Aboodred1 2013-03-12 19:03:36
jqXHR.status为0, jqXHR.responseText未定义, 异常未定义 – user2144480 2013-03-12 19:05:12
*不停地唠叨我把http放在我的文章中,它不会让我继续使用http“\” \在那里。 – user2144480 2013-03-12 19:06:14