我正在使用jquery ajax调用我的web服务:
$.ajax({
type: sType,
url: "myWebService.asmx",
cache: serviceCash,
data: params,
accepts: {
text: "application/json"
},
contentType: contentType,
dataType: "json"
....Web服务如下所示:
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetLang(string cLang, string iLangVersion ){
//code to create json string
return jsonResp;
}当我有类型的时候: POST evertyhing效果很好。
type: "POST",
data: "{ 'clang':'ANG', 'iLangVersion' : '1'}",
contentType:"application/json; charset=UTF-8",
dataType: "json"响应是纯json:
{"d":"{\"userSettingsData\":{\" ...and so on当我将请求改为GET方法时:
type: "GET",
data: "clang=ANG&iLangVersion=1",
contentType:"application/x-www-form-urlencoded; charset=UTF-8",
dataType: "json"响应是xml:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">{"translation":"\r\n{\"translation\":{\"..and so on我应该怎么做才能像以前一样得到json格式的响应?因此,我将url编码的数据发送到web服务,作为回报,我希望获得json而不是XML!我已经定义了dataType:"json“-您期望从服务器返回的数据类型,我已经设置了接受类型: accept:{text:”应用程序/json“}-告诉服务器它将接受哪种类型的响应。
但我得到的回报是xml。我应该改变什么?
发布于 2014-04-15 21:31:23
好吧,如果你可以控制发送返回的脚本,你应该发布该代码。如果您无法控制该脚本,那么最好在post请求中设置dataType:"xml“,并以这种方式处理它。
如果没有处理请求的脚本,就不能真正将XML转换为JSON。
发布于 2014-04-15 21:32:57
这取决于服务器端流程是如何编写的,但在第一段代码中,您告诉服务器您需要一个JSON响应:
accepts: {
text: "application/json"
},如果您也将其添加到第二个请求中,则可能会起作用。
如果做不到这一点,您将需要更仔细地检查服务器端代码,以查看它使用什么逻辑来确定响应类型。
https://stackoverflow.com/questions/23085091
复制相似问题