Javascript 从任何Web应用程序调用时出现Windows exe API cors问题。C++;

Javascript 从任何Web应用程序调用时出现Windows exe API cors问题。C++;,javascript,c++,ajax,cors,Javascript,C++,Ajax,Cors,我们已经使用CPP语言创建了一个EXE文件,并创建了一个API,如http://localhost:5800/get-id/。当我在浏览器中打开时,返回完美的输出 当我在HTML>脚本页面中使用fetch时,请求的资源上没有“Access Control Allow Origin”标题。 代码1: fetch("http://localhost:5800/get-id/", {method: 'GET').then(function(response) { console

我们已经使用CPP语言创建了一个EXE文件,并创建了一个API,如
http://localhost:5800/get-id/
。当我在浏览器中打开时,返回完美的输出

当我在HTML>脚本页面中使用
fetch
时,请求的资源上没有“Access Control Allow Origin”标题。

代码1:

fetch("http://localhost:5800/get-id/", {method: 'GET').then(function(response) {
  console.log(response.text()); 
}).catch(function(error) {  
  console.log('Request failed', error)  
});
经过研究,我添加了
模式:没有cors
错误丢失,但得到了一个空响应。 代码2:

如果我在任何检查控制台中使用
code2
,则在打开
http://localhost:5800/get-在浏览器中输入id/
,并尝试在控制台中点击
code2
,然后获得完美的参数

这意味着,localhost-domain可以正常工作,但由于我的错误,当它从任何域获取时

正确的解决方案是什么?在C/CPP语言中,我们如何允许cors

奇怪:

当我从控制台点击时,显示为空

对于我选中的网络选项卡上的相同请求,显示200 OK和正确的响应/预览数据

CORS是一个复杂的主题,我通常在Express server的Node.JS中处理它(也许代码将有助于解决这个问题)

它允许域
API域
上的API列出可以使用它的web应用程序,例如,您的应用程序位于
webapp域

当应用程序调用
fetch('http://api-domain/get-id/)
到另一个域,它被称为跨源调用

所有浏览器都会这样调用以检查余量:

OPTIONS /get-id/
Access-Control-Request-Method: GET
Access-Control-Request-Headers: origin, x-requested-with
Origin: http://webapp-domain
(请注意,这是对API的选项请求,不是GET)

响应应列出允许的
webapp域
(并指定允许哪些HTTP方法)

在这样成功的飞行前调用之后,浏览器将继续执行
fetch
,例如,它将向
http://api-domain/get-id/

附言


跳过CORS的方法之一是在
webapp-domain
中设置HTTP代理,它将在服务器端调用
api-domain
,并且不受CORS的限制。详见答案。

首先,没有所谓的“C,CPP”语言。你用哪一种?C还是C++?这些语言是不同的。其次,错误消息意味着程序应该输出一个头,但它没有输出。您是否熟悉服务器端应用程序在提供内容时的行为?如果您希望继续将这个问题标记为C或C++,我建议您显示相关代码。您可以使用相同的端口,用于<代码> /GATDATABAS//>和<代码> /获取ID/< /COD>,如“代码>”之类的代码。http://localhost:5800/getdata?这个问题会消失,因为它只涉及到一个域的网页(本地主机:4563),调用另一个域(LoalHoal:5800)。@ PadieC++语言exe Bug。@ VITALII都是同一个端口,我错把4563。您能检查我附加的另外两个快照吗。@GunjanPatel如果页面与请求位于同一域中,请尝试删除
http://localhost:5800
,即
获取(“/get id/”,…)
OPTIONS /get-id/
Access-Control-Request-Method: GET
Access-Control-Request-Headers: origin, x-requested-with
Origin: http://webapp-domain
HTTP/1.1 204 No Content
Connection: keep-alive
Access-Control-Allow-Origin: http://webapp-domain
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400