带有自定义HTTPHeader字段的JSON帖子

Izz*_*zzy 42 jquery post json http-headers

我继承了一些最终将成为API调用一部分的代码.根据现有代码,调用是一个用access_token检索JSON代码的帖子.虽然这通常很简单,并且像其他每个API一样,但此代码要求客户端密钥有一个自定义的httpheader字段.

我能够使用URLRequest等在Objective C中完成这项工作,但是现在我正在创建一个Web组件的调用,我已被拦截了.

我正在使用一个非常标准的jquery帖子

        $.post('https://url.com', 
        {access_token:'XXXXXXXXXXXXXXXXXXX',
         function(data){
           console.info(data);
         }, 'json');
Run Code Online (Sandbox Code Playgroud)

在标头中使用HTTP-EQUIV.但该帖子从不检索数据,服务器本身也没有识别出任何调用(即使是不完整的调用).

我可能不得不废弃此代码并重新开始,但如果有人之前遇到此问题,请提供任何见解.

JAA*_*lde 124

您发布的内容有语法错误,但它没有任何区别,因为您无法通过HTTP标头$.post().

如果您使用的是jQuery版本> = 1.5,请切换到$.ajax()并传递headers(docs)选项.(如果您使用的是较旧版本的jQuery,我将通过该beforeSend选项向您展示如何执行此操作.)

$.ajax({
    url: 'https://url.com',
    type: 'post',
    data: {
        access_token: 'XXXXXXXXXXXXXXXXXXX'
    },
    headers: {
        Header_Name_One: 'Header Value One',   //If your header name has spaces or any other char not appropriate
        "Header Name Two": 'Header Value Two'  //for object property name, use quoted notation shown in second
    },
    dataType: 'json',
    success: function (data) {
        console.info(data);
    }
});
Run Code Online (Sandbox Code Playgroud)


Mau*_*ani 17

如果想要使用.post(),那么这将为使用jquery进行的所有未来请求设置标头

$.ajaxSetup({
    headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
});
Run Code Online (Sandbox Code Playgroud)

然后正常进行.post()调用.