我将 Angular 与 AppGyver 套件一起用于一个简单的 CRUD 应用程序。在我部署到云之前,我的 GET 和 POST 请求对我的远程 API(PHP REST 服务器)运行良好。从那里,PHP 永远不会真正获取 POST 数据。
我正在使用 NGINX 中的自定义标头打开 CORS 访问
在我的服务器上运行 tcpdump 我发现在部署到云之前和之后发送的标头中存在这些差异
IOS SIMULATOR::: WORKS----
Content-Length: 26
Accept: application/json, text/plain, */*
Content-Type: application/json
DEPLOY TO CLOUD::: DOESN'T------
Access-Control-Request-Method: POST
Accept: */*
Access-Control-Request-Headers: accept, origin, content-type
Content-Length: 0
我猜这是我看不到的 CORS 问题……非常令人沮丧!
(也尝试使用签名的 SSL 证书而不是直接的 HTTP,没有变化)
我的 NGINX 标头:
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Key,accept,origin,content-type,X-Requested-With,steroidsAppId,steroidsApiKey,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header "Access-Control-Request-Method" "POST";
add_header "Access-Control-Allow-Credentials" true;