从ANGULAL连接到REST API

Connect to REST API from ANGULAR

本文关键字:REST API 连接 ANGULAL      更新时间:2023-09-26

我正在尝试连接到外部POST api进行身份验证。我正在尝试:

$http({
    method  : 'POST',
    url     : 'myURL',
    data    : {"j_username": "myUserName,"j_password": "myPassword"},
    headers : {
        'Content-Type': 'application/x-www-form-urlencoded',
    } 
})

但我得到了这个错误:

XMLHttpRequest无法加载http://...url.飞行前的响应是无效(重定向)

这看起来像是一个CORS问题。如果javascript是从与您正在调用的API域不同的域提供的,那么您将遇到CORS问题。简言之,浏览器将检测到javascript是从域A提供的,并且API在域B上。接下来会发生什么取决于您要做什么。在这种情况下,您正在进行POST,这意味着浏览器将向API服务器发送预飞检查,询问域A的javascript是否可以访问它。服务器必须响应"是",浏览器才能允许请求通过(事实上,这比"是"要复杂得多,但你已经明白了)。

简而言之,您需要配置API服务器以允许这样做。如果它不是你的API,那么你需要问API的所有者,他们是否可以配置CORS以允许你的javascript访问它

如果你确实需要使用这种设置,那么花时间阅读并正确理解它是值得的。另一方面,你可能只是用本地js文件添加了一些内容,在这种情况下,你只需要知道它不会那样工作。

另请参阅https://stackoverflow.com/a/23824093/11534.