如何执行带有标头的POST请求?

时间:2018-11-16 15:29:58

标签: javascript jquery ajax post

现在,我正在尝试发布帖子:

https://aleapisoap.azure-api.net/httpbin/listSearchFields

我需要一个这样的身体:

{
  "listSearchFields": {
    "email": "sample"
  }
}

我在邮递员中尝试了此方法,并且可以使用,但是在JavaScript中使用此代码无效。

$.ajax({
                    url: 'https://aleapisoap.azure-api.net/httpbin/listSearchFields',
                    headers: {
                        'Content-Type':'application/json',
                        'Cache-Control':'no-cache',
                        'Ocp-Apim-Trace':'true',
                        'Ocp-Apim-Subscription-Key':'19f2a7fd474840bfb5fc729cd97b7335'
                    },
                    type: 'POST',
                    dataType: 'jsonp',
                    data: '{"listSearchFields":{"email":"sample"}}',
                    success: function(data){
                    console.log('succes: '+data);
                    }
                });

这是错误:

net :: ERR_ABORTED 404(找不到资源)

2 个答案:

答案 0 :(得分:0)

$。ajax()调用中的标题对我来说是正确的。我认为您期望的https://aleapisoap.azure-api.net/httpbin/处不存在“ listSearchFields”端点。首先检查您的拼写-如果您正确拼写了“ listSearchFields”,则必须更深入地研究找出找不到它的原因。

答案 1 :(得分:0)

dataType: 'jsonp',

JSONP请求与设置自定义请求标头或发出POST请求不兼容。它们通过注入具有<script>属性的src元素(发出GET请求)来工作。

如果您需要发出POST请求,请不要使用该dataType。您可能需要'json'

JSONP是一种黑客,用于在CORS可用之前解决Same Origin Policy的问题。您可能需要采取其他步骤来确保端点对您的来源可用。