Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CORS问题是AngularJS应用程序独有的吗?_Angularjs_Asp.net Web Api_Cors - Fatal编程技术网

CORS问题是AngularJS应用程序独有的吗?

CORS问题是AngularJS应用程序独有的吗?,angularjs,asp.net-web-api,cors,Angularjs,Asp.net Web Api,Cors,我正在用AngularJS构建一个客户端应用程序,它向使用ASP.NET构建的RESTfulWebAPI发出请求。我有“无访问控制允许源标题存在”错误,我理解为了修复它,您需要在您的web API中允许CORS,我已经这样做了 然而,我不明白的是,为什么我只在AngularJS应用程序中存在这个问题。我在ASP.NET MVC中构建了许多客户端应用程序,这些应用程序使用ASP.NET web API提供的服务,我从未遇到过这个问题。有人能解释一下为什么会发生这种情况吗?这对AngularJS来说

我正在用AngularJS构建一个客户端应用程序,它向使用ASP.NET构建的RESTfulWebAPI发出请求。我有“无访问控制允许源标题存在”错误,我理解为了修复它,您需要在您的web API中允许CORS,我已经这样做了


然而,我不明白的是,为什么我只在AngularJS应用程序中存在这个问题。我在ASP.NET MVC中构建了许多客户端应用程序,这些应用程序使用ASP.NET web API提供的服务,我从未遇到过这个问题。有人能解释一下为什么会发生这种情况吗?

这对AngularJS来说并不是唯一的。对于所有指向不同域的javascript调用,都是这样的

区别可能在于您从MVC项目的服务器调用了web服务


同时,从前端(浏览器)调用API时,浏览器内置了安全性,不允许您调用其他域。服务器没有与浏览器相同的内置安全性。

对于AngularJS来说,它不是唯一的。对于所有指向不同域的javascript调用,都是这样的

区别可能在于您从MVC项目的服务器调用了web服务


同时,从前端(浏览器)调用API时,浏览器内置了安全性,不允许您调用其他域。服务器没有与浏览器相同的内置安全性。

CORS是一种基于浏览器的技术,不限于Angular。Angular利用XMLHttpRequest发出请求,这是使用同源策略的。其他客户端应用程序正常工作的原因是它们不是基于浏览器的


CORS是一种基于浏览器的技术,不限于角度。Angular利用XMLHttpRequest发出请求,这是使用同源策略的。其他客户端应用程序正常工作的原因是它们不是基于浏览器的


不。这不是Angular独有的

当您的后端API和前端SPA具有以下不同的一项时,您将遇到CORS问题:

  • 主机名:
    api.example.com
    www.example.com
  • 端口:
    example.com
    example.com:8080
  • 协议:
    https://example.com
    http://example.com

不。这不是角形结构的独有特性

当您的后端API和前端SPA具有以下不同的一项时,您将遇到CORS问题:

  • 主机名:
    api.example.com
    www.example.com
  • 端口:
    example.com
    example.com:8080
  • 协议:
    https://example.com
    http://example.com


CORS问题与角度无关。尝试使用普通jQuery对禁用CORS的API进行ajax调用,您将得到该错误。它不是唯一的。当您从不同的域获取数据时,此安全性将启动并阻止请求。您是否在与web api相同的域上运行angularjs应用程序?它们都在不同的本地主机地址上运行。问题是它不工作吗?还是你让它工作了?我让它工作了,但不是以我想要的方式。我不得不添加[EnableCors(“*”,“*”,“*”),它允许从所有来源向我的控制器类发出请求,而不是[EnableCors(“,“*”,“*”),因为它不起作用。CORS问题与Angular无关。尝试使用普通jQuery对禁用CORS的API进行ajax调用,您将得到该错误。它不是唯一的。当您从不同的域获取数据时,此安全性将启动并阻止请求。您是否在与web api相同的域上运行angularjs应用程序?它们都在不同的本地主机地址上运行。问题是它不工作吗?还是你让它工作了?我让它工作了,但不是以我想要的方式。我不得不添加[EnableCors(“*”,“*”,“*”),它允许所有来源的请求进入我的控制器类,而不是[EnableCors(“,“*”,“*”),因为它不起作用。这是真的,但angular为此增加了一些限制:除了在angularJS中使用GET,不能在其他方法上使用json。我不清楚这些的局限性,我也找不到一个很好的文档链接。我看到soe的问题如此明显,一些人不得不将头从1改为1,而不是json,以获得angularJS允许的请求。json/jsonp也有一些问题,但我仍然没有找到一个真正合适的链接,我从来没有遇到过这个问题。一定是某种边缘案例。但我在同一个VisualStudio解决方案上有两个应用程序。运行应用程序时不应该使用相同的服务器吗?你是什么意思?您尝试调用的angular代码和web api在同一个web项目中?谢谢,从现在起我不会忘记这一点!这是真的,但angularJS为此增加了一些限制:除了在angularJS中使用GET,您不能在其他方法上使用json。我不清楚这些的局限性,我也找不到一个很好的文档链接。我看到soe的问题如此明显,一些人不得不将头从1改为1,而不是json,以获得angularJS允许的请求。json/jsonp也有一些问题,但我仍然没有找到一个真正合适的链接,我从来没有遇到过这个问题。一定是某种边缘案例。但我在同一个VisualStudio解决方案上有两个应用程序。运行应用程序时不应该使用相同的服务器吗?你是什么意思?您尝试调用的angular代码和web api在同一个web项目中?谢谢,从现在起我不会忘记这一点!因此,基本上,因为ASP.NET MVC不是SPA,并且在服务器上运行,所以我没有ASP.NET MVC应用程序调用Web API的CORS问题?是的,您可以绕过CORS