Javascript $.ajax不允许发布json类型的数据

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",

我有一个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",
    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.log
responsedata
@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));
    }
});