Javascript 否';访问控制允许原点';请求的资源上存在标头。401错误

Javascript 否';访问控制允许原点';请求的资源上存在标头。401错误,javascript,jquery,html,api,spell-checking,Javascript,Jquery,Html,Api,Spell Checking,我一直在尝试使用bing拼写检查api来实现拼写检查。我得到一个401错误。错误是 请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“null”。响应的HTTP状态代码为401 函数hi(){ 变量参数={ //请求参数 “模式”:“{拼写}”, }; $.ajax({ url:“https://api.cognitive.microsoft.com/bing/v5.0/spellcheck/?“+$.param(params), 发送前:函

我一直在尝试使用bing拼写检查api来实现拼写检查。我得到一个401错误。错误是

请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“null”。响应的HTTP状态代码为401


函数hi(){
变量参数={
//请求参数
“模式”:“{拼写}”,
};
$.ajax({
url:“https://api.cognitive.microsoft.com/bing/v5.0/spellcheck/?“+$.param(params),
发送前:函数(xhrObj){
//请求头
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setRequestHeader(“Ocp Apim订阅密钥”,“{0c6cb56a997b41d4958ace895a677729}”);
},
跨域:false,
标题:{'X-request-With':'XMLHttpRequest'},
类型:“POST”,
数据类型:“jsonp”,
//请求主体
数据:{
dataSpell:$(“#textContent”).val()},
成功:功能(结果){
$(“div”).html(结果);}
//数据类型:“jsonp”
});
}
点击我!
​
{…}您正在对页面所在的域以外的域执行XMLHttpRequest。因此,浏览器正在阻止它,因为出于安全原因,它通常允许同一来源的请求。当您想要执行跨域请求时,您需要执行一些不同的操作


引用你的答案,所以如果你仍然不明白为什么会出现这个错误,请检查一下。您可以通过此处了解如何绕过此操作。

除非第三方网站明确将您列入白名单,否则您无法从另一个网站的webscript向一个网站发送请求。您应该阅读有关
跨域资源共享(CORS)
    <html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>

<script type="text/javascript">
    function hi(){


        var params = {
            // Request parameters
            "mode": "{Spell}",
        };

        $.ajax({
             url: "https://api.cognitive.microsoft.com/bing/v5.0/spellcheck/?" + $.param(params),
             beforeSend: function(xhrObj){
                // Request headers
                xhrObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","{0c6cb56a997b41d4958ace895a677729}");
            },
        crossDomain: false,
        headers: {'X-Requested-With': 'XMLHttpRequest'},
        type: "POST",
        dataType: 'jsonp',

            // Request body
                data: {
            dataSpell: $("#textContent").val()},

        success : function(result){
            $("div").html(result); }
        //dataType: 'jsonp'
    });


    }
</script>

</head>
<body>
<textarea rows="4" cols="50" id="textContent" spell-check="true" placeholder="Type here"></textarea>
<button type="button" id="spellcheck" onclick="hi();" >Click Me!</button>
<div> </div>
</body>

</html>​