gpt4 book ai didi

jquery - 对 WCF Restful 服务的 Json 调用 (jquery) 始终运行错误函数

转载 作者:行者123 更新时间:2023-12-01 06:04:05 24 4
gpt4 key购买 nike

我正在尝试使用下面的 JavaScript 从不同的域调用我的 Web 服务(WCF Restful)(在下面的代码中,它们都位于本地主机中,但具有不同的端口号,我认为这是跨域请求)。

jQuery.support.cors = true;
$(document).ready(function () {
{
$.ajax({
type: "POST",
url: "http://localhost:52032/Service1.svc/std",
contentType: "application/jsonp; charset=utf-8",
dataType: "jsonp",

processData: false , //Same result if i remove this line
crossDomain : true , //Same result if i remove this line
converters: window.String, //Same result if i remove this line
success: OnSuccess,
error: OnError});
}
});

function OnSuccess(data)
{
alert("Finaly :D");
JSON.stringify(data);
}

function OnError(request, status, error)
{
alert("Error: "+request.statusText + JSON.stringify(request)+ " | " +JSON.stringify(status) +" | " +JSON.stringify(error));
}

我的网络服务非常简单。 getStudents() 返回一个 JSON 字符串。我使用 JavaScriptSerializer 将学生对象解析为 JSON。

namespace MyFirstWcfTestService
{
[ServiceContract]
public interface IService1
{
[OperationContract(Name = "AddParameter")]
[WebGet(UriTemplate = "/std", ResponseFormat = WebMessageFormat.Json)]
String getStudents();

}
}

我总是从 OnError 函数中收到以下错误,当我在 Chrome 开发/ Debug模式下查看响应时,我可以看到我的 JSON 文本。

Error: success{"readyState":4,"status":200,"statusText":"success"}|"ParserError"| "jQuery1706816276672761887_1322704382563 was not called"

我返回的 json 文本如下所示:

"[{\"StudentID\":256,\"StudentFirstName\":\"Ali\",\"StudentSurname\":\"Smith\"},{\"StudentID\":306,\"StudentFirstName\":\"John\",\"StudentSurname\":\"Menz\"},{\"StudentID\":314,\"StudentFirstName\":\"George\",\"StudentSurname\":\"Ray\"},{\"StudentID\":316,\"StudentFirstName\":\"Fred\",\"StudentSurname\":\"Patric\"},{\"StudentID\":603,\"StudentFirstName\":\"George\",\"StudentSurname\":\"Foster\"},{\"StudentID\":604,\"StudentFirstName\":\"Bobbie\",\"StudentSurname\":\"Kolman\"},{\"StudentID\":765,\"StudentFirstName\":\"Jim\",\"StudentSurname\":\"Khas\"},{\"StudentID\":987,\"StudentFirstName\":\"Harry\",\"StudentSurname\":\"Poter\"},{\"StudentID\":988,\"StudentFirstName\":\"Con\",\"StudentSurname\":\"Mench\"},{\"StudentID\":1001,\"StudentFirstName\":\"Jim\",\"StudentSurname\":\"Colon\"}]"

您能帮我找到解决这个问题的方法吗?我已经将我的 Web 服务从 SOAP 更改为这个 Restful 服务。

编辑我设法将 jsonp 消息包装在一个方法中(myCallback 如下

myCallback([{"StudentID":256,"StudentFirstName":"Rachel","StudentSurname":"Smith"},{"StudentID":306,"StudentFirstName":"Ali","StudentSurname":"Flemming"},{"StudentID":314,"StudentFirstName":"George","StudentSurname":"Ray"},{"StudentID":316,"StudentFirstName":"Fred","StudentSurname":"Patric"},{"StudentID":603,"StudentFirstName":"George","StudentSurname":"Foster"},{"StudentID":604,"StudentFirstName":"Bobbie","StudentSurname":"Kolman"},{"StudentID":765,"StudentFirstName":"Jim","StudentSurname":"Khas"},{"StudentID":987,"StudentFirstName":"Harry","StudentSurname":"Poter"},{"StudentID":988,"StudentFirstName":"Con","StudentSurname":"Mench"},{"StudentID":1001,"StudentFirstName":"Jim","StudentSurname":"colon"}]);

我还更改了我的 Ajax 调用,如下

$.ajax({
type: "post",
url: "http://localhost:52032/Service1.svc/getStd?callback=myCallback", //or callback=?
dataType: "jsonp",
//converters: jQuery.parseJSON,
contentType: 'application/javascript',
success: OnSuccess,
error: OnError

});

但我仍然遇到同样的错误。我为这样一个简单的任务花了三周的时间:(

最佳答案

尝试更改 getStudents() 以返回 Json(List, JsonRequestBehavior.AllowGet) 并通过 jQuery 访问返回的列表,每个列表使用 data[iterator].StudentID、data[iterator].StudentFirstName 等。

关于jquery - 对 WCF Restful 服务的 Json 调用 (jquery) 始终运行错误函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8335656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com