在向外部服务器发送 ajax 调用时,Access-Control-Allow-Headers 在预检响应中不允许请求标头字段授权 [重复]
Posted
技术标签:
【中文标题】在向外部服务器发送 ajax 调用时,Access-Control-Allow-Headers 在预检响应中不允许请求标头字段授权 [重复]【英文标题】:Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response while sending a ajax call to a outside server [duplicate] 【发布时间】:2018-11-03 14:05:43 【问题描述】:我正在尝试发出 ajax 请求以从 IBM Watson 获取聊天响应。
<html>
<head>
<title>ChatBox</title>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
var dataText;
function testfunction()
var username = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
var password = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$.ajax(
url: "https://gateway.watsonplatform.net/assistant/api/v1/workspaces/b8120041-5XXXXXXXXXXXXXXXXXXXXXXXXXXb250/message?version=2018-02-16",
beforeSend: function(xhr)
xhr.setRequestHeader("Authorization", "Basic" + btoa(username + ":" + password));
,
type: 'POST',
dataType: "json",
contentType: 'application/json',
processData: false,
data: "\"input\": \"text\": \"Hello\"",
success: function (data)
dataText = data['output']['text'];
console.log(dataText);
,
error: function()
alert("Cannot get data");
);
</script>
<button type ="radio" onclick = "testfunction();"> Generate json</button>
<br/>
<br/>
<button type="button" onclick="document.getElementById('pid').innerHTML = dataText">Get Json</button>
<p id="pid">Hello i am inside p</p>
</body>
</html>
我收到以下错误-
预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段授权。
但是,如果我使用了 CORS chrome 扩展程序,那么我会得到正确的响应。
我见过很多类似问题的解决方案,他们要求在服务器端添加一些标题。但在这里我无法控制 Watson 服务器。
请向我建议任何解决方案,以便在不使用扩展程序的情况下获得对 ajax 请求的正确响应。
总而言之,我想要解决方案
预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段授权。
【问题讨论】:
这是您的真实用户名和密码吗...? 我已经删除了真实凭据 【参考方案1】:创建一个页面/控件,它将向目标站点发送请求并将响应输出为您需要的页面。这样你会看到显示的页面,但是你需要修复script
、link
、img
和a
标签的路径。
【讨论】:
你能详细说明吗? @ANKITKUMAR 你使用服务器端语言吗? 我已经在问题中发布了整个代码。它只是 HTML 和 jquery。 @ANKITKUMAR 我重复我的问题:您使用服务器端语言吗?我看过你的代码,但我的问题不同。 不,我没有使用任何服务器端语言。以上是关于在向外部服务器发送 ajax 调用时,Access-Control-Allow-Headers 在预检响应中不允许请求标头字段授权 [重复]的主要内容,如果未能解决你的问题,请参考以下文章