Javascript $.ajax不允许发布json类型的数据
我有一个RESTURL,我需要在那里发布一些JSON数据,它会给出如下截图所示的响应 现在我需要在我的应用程序中使用$http或$.ajax来使用它Javascript $.ajax不允许发布json类型的数据,javascript,jquery,angularjs,json,ajax,Javascript,Jquery,Angularjs,Json,Ajax,我有一个RESTURL,我需要在那里发布一些JSON数据,它会给出如下截图所示的响应 现在我需要在我的应用程序中使用$http或$.ajax来使用它 var postdata = {} //whole jsonobject which is der in above screenshot $.ajax({ url: "http://10.11.13.153:8081/fro?assettype=00000000-0000-0000-0000-000000031026",
var postdata = {} //whole jsonobject which is der in above screenshot
$.ajax({
url: "http://10.11.13.153:8081/fro?assettype=00000000-0000-0000-0000-000000031026",
type: 'post',
data: postdata,
dataType: 'json',
success: function (data) {
console.log("response ",JSON.stringify(data));
}
});
但对于这一点,我得到了200个响应,但我没有看到在成功函数中得到安慰的响应
在“网络”选项卡中,我看到以下响应
terms%5Bitems%5D%5B0%5D%5B_type%5D=term&terms%5Bitems%5D%5B0%5D%5B_id%5D=6662c0f2.e1b1ec6c.1mdln1e8h.0ibdeqc.s1nm3u.vbt90ta1civ5asp5qetu5&terms%5Bitems%5D%5B0%5D%5B_url%5D=https%3A%2F%2F10.11.13.155%3A9445%2Fibm%2Fiis%2Figc%2F%23dossierView%2F6662c0f2.e1b1ec6c.1mdln1e8h.0ibdeqc.s1nm3u.vbt90ta1civ5asp5qetu5&terms%5Bitems%5D%5B0%5D%5B_name%5D=Export_02
它不是JSON格式,也不是预期的格式
下面是N/w选项卡中标题的屏幕截图
在我的请求头中,为什么会看到表单URL编码类型
我明白这是默认的。那么,如何更改并使其采用application/json呢
作为一种尝试,我将JSON改为数据类型
datatype:'html'
然后这次我得到了与上面相同的响应,但这次它在成功函数中得到了安慰。为什么会这样?这里可以做些什么来获得JSON格式的预期响应。或者任何需要在服务器端添加的头文件。请提供帮助或想法相反,
数据类型
不控制数据的类型
;它告诉jQuery您希望从返回什么类型的数据contentType
告诉jQuery您正在发送什么类型的数据。(请参阅。)当您设置contentType
时,您需要确保您提供的jQuery确实是该格式的
因此,在您的情况下,需要设置contentType
并对对象进行字符串化(请参见***
行):
(我还更改了success
的内容,因为您评论说使用responsedata
时出现了一个与问题无关的打字错误。)
如果您还希望返回JSON,请确保响应具有正确的
内容类型
标题。(或者,作为第二类选项,指定dataType:“json”
告诉jQuery它是json,不管服务器怎么说。)您可以尝试使用数据:json.stringfy(postdata)success:function(data){console.log(“response”,json.stringify(responsedata));}
success函数将数据返回为data
,但您试图console.logresponsedata
@Zaphiel sry我没有注意到只是输入错误…甚至数据也没有得到控制“var postdata={}//上面截图中的整个jsonobject
”这不是一个“JSON对象”。这是一个对象。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么就不是JSON。
var postdata = {} //whole jsonobject which is der in above screenshot
$.ajax({
url: "http://10.11.13.153:8081/fro?assettype=00000000-0000-0000-0000-000000031026",
type: 'post',
data: JSON.stringify(postdata), // ***
contentType: 'json', // ***
success: function (data) {
console.log("response ",JSON.stringify(data));
}
});