在c#中为套接字的响应添加报头

本文关键字:响应 添加 报头 套接字 | 更新日期: 2023-09-27 18:19:12

我正在尝试在网页和c#套接字之间交换数据。c#套接字在本地主机上运行。该网页在服务器上运行,并指向本地主机。

当网页向c#套接字发送Get请求时,显示一个跨域错误。

XMLHttpRequest cannot load http://localhost:12345/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.1.3:9000' is therefore not allowed access.

这是运行在网页(Angular)上的JS。

var serviceUrl = 'http://localhost:12345';
var service = $resource(
   serviceUrl,{}, {
       getCard: {
           method: "GET"
       }
   }
);
service.getCard();

这是c#控制台应用程序的一部分代码。

private static void Send(Socket handler, String data)
{
    // Convert the string data to byte data using ASCII encoding.
    byte[] byteData = Encoding.ASCII.GetBytes(data);
    // Begin sending the data to the remote device.
    handler.BeginSend( byteData
                     , 0
                     , byteData.Length
                     , 0
                     , new AsyncCallback(SendCallback)
                     , handler                      
                     );

如何将报头信息添加到响应中。头必须是:Access-Control-Allow-Origin: *当我在字符串前面添加它时,它不起作用

在c#中为套接字的响应添加报头

头必须在您提供页面时添加,而不是从套接字响应中添加。它只是一个普通的HTTP头。

如果你使用IIS来服务你的网页,在发送页面之前做一些像这样的事情:

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");