我想向外部API发出HTTP Post请求,但当我试图从React with axios执行此操作时,我遇到了CORS错误(请求的资源上不存在“Access Control Allow Origin”头)。同时,在.NET中发出此请求时,一切似乎都正常。我不知道为什么会这样,也许有人能弄明白。
响应请求:
var bodyFormData = new FormData();
bodyFormData.append('key', 'apiKey');
bodyFormData.append('function', 'getTeams');
async function fetchData() {
await axios({
url: 'https://external.api/api/',
method: 'POST',
data: bodyFormData,
withCredentials: true,
headers: {
'Content-Type': 'multipart/form-data',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE,PATCH,OPTIONS',
'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept'
},
})
.then((response) => {
console.log(response)
})
.catch((err) => {
console.log(err)
});
}
fetchData();
...NET请求:
var request = (HttpWebRequest)WebRequest.Create("https://external.api/api/");
var postData = "key=apiKey";
postData += "&function=getTeams";
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
CORS是一种仅适用于客户端(浏览器)的安全措施。无论您是否需要,浏览器都会发送Origin
标头,API会检查标头,以决定它是否应该为您服务(通过允许浏览器继续执行主请求)。
您可以从后端无问题地发送请求,因为没有Origin
头。
所以你有两个选择:
https://$domain:$port
如果API在您的控制之下,这应该很容易,如果不是,代理是一个更简单的解决方案。
这个项目的目标是使用IBM的Watson及其自然语言理解AI。
问题内容: 我想要的是从具有HTTP(例如jQuery的AJAX)请求的API到外部api的对象。我该如何开始?我曾对Google先生进行过调查,但找不到任何帮助。 我开始怀疑这是否可能?在这篇文章中,Laravel4发出了从控制器到外部url的发布请求,并发出了看起来可以完成的数据。但是没有示例,也没有任何来源可以找到一些文档。 请帮帮我吗? 问题答案: 看看Guzzle
我想要的是从一个API获取一个对象,并将HTTP(例如,jQuery的AJAX)请求发送到一个外部API。我该怎么开始?我对谷歌先生做了研究,但没有发现任何有用的东西。 我开始怀疑这是可能的吗?在这篇文章Laravel 4使后请求从控制器到外部url与数据它看起来像是可以做到的。但是没有例子也没有任何来源可以找到一些留档。 请帮帮我?
我有一个配置为使用WINDOWS AUTHENTICATION的webapi。 在我的angular应用程序中,我有以下方法: 让方法完美地工作。 POST方法给了我以下错误: 最后介绍了webapi方法 还有我们几个小时来一直在努力的那个该死的错误: 无法加载XMLHttpRequesthttp://a.b.com/api/Contactos.对飞行前请求的响应未通过访问控制检查:请求的资源上不
我试着描述一下我们的情况: 我们有一个Wordpress网站,需要连接到Oath2 API 我对API和PHP的使用经验很少 我们正在使用一个PHP-Oath2库,可以在这里找到:https://github.com/adoy/PHP-OAuth2/tree/master/src/OAuth2 我们卡住的库中的方法是 executeRequest。这种方法可以在 https://github.co
我试图在Flutter应用程序中使用AWS DynamoDB,由于缺乏官方的AWS Dart SDK,我被迫使用低级别的HTTP REST API。 签署AWS HTTP请求的方法非常繁琐,但使用AWS提供的示例作为指导,我能够相对轻松地将Python转换为Dart。最终结果是两组代码产生相同的身份验证签名。 当我真的去发送请求时,我的问题来了。Python的工作原理与预期一致,但使用Dart的H