我目前正在开发一种API,将在几周内投入生产。我对REST比较陌生,开始阅读有关CORS的内容 - 并意识到它可能会影响我。
客户可以访问REST服务不的条件是什么?我一直在同一台服务器上使用样本html / js,并通过Postman(一个谷歌浏览器插件)来访问我的API。到目前为止我没有遇到任何问题。
当API上线时,它将在' api.myserver.com'托管。一开始,请求将来自app.myOTHERserver.com'。如果我不使用像JSONP这样的CORS友好方法或特殊的访问控制'那么这些请求是否会被拒绝?允许我的域名的标题?
如何从其他非浏览器客户端访问其他API?比如C#应用程序?默认情况下是否允许这些请求?
假设我确实需要添加' access-control'标题服务器端,为了在我的API上线时允许上述场景,让你的web服务器(在我的情况下是NGINX)处理标题更好(性能方面),还是应该通过PHP或NodeJS添加它们?
答案 0 :(得分:1)
这更多是关于Web浏览器应用的same-origin policy,而不是一般的RESTful API。
如果您的API旨在供部署在与API不同的源主机/端口上的Web应用程序使用,那么您有以下选项:
app.myOTHERserver.com
)也可以处理您的REST API请求。例如,您可以在网址/api
下的Web服务器上公开您的API,然后只需设置一个Web代理配置,将该URL下的请求转发给您的API服务器。如果您的API将由非Web应用程序使用,您无需担心。这只是浏览器在运行JavaScript代码时应用的限制,以确保用户无意中点击了网络钓鱼链接,其中有一些hackery试图将他们的PayPal密码发送给平壤。
答案 1 :(得分:0)
当API上线时,它将在' api.myserver.com'托管。 一开始,请求将来自app.myOTHERserver.com'。 如果我不使用CORS友好的方法,这些请求是否会被拒绝 像JSONP或特殊的访问控制'允许我的域名的标题?
您可以指定哪些客户端可以访问您的Web服务。假设您正在使用Express:How to allow CORS?