Doc*_*day 6 java xmlhttprequest http-headers
因此,我已经阅读了有关此问题的其他线程,但尚未找到解决方案。
我遇到的问题是因为我设置了“access-control-allow-methods”“true”我不能使用 setHeader("Access-Control-Allow-Origin", "*");
我需要设置两个特定的域...任何帮助表示赞赏。
您可以做的是将您的 http 方法修改为:
public Response getYourMethod( HttpServletRequest request)
throws Exception, IOException{
//then your code
}
Run Code Online (Sandbox Code Playgroud)
现在添加以下内容:
由于您的 API 在“允许来源标头”中查找www.yoursite.com:3000,因此您需要确保将其添加到以下行中:
response.setHeader("Access-Control-Allow-Origin", "www.yoursite.com:3000");
Run Code Online (Sandbox Code Playgroud)
要获得www.yoursite.com:3000您可以使用:
String requestUrl = request.getRemoteAddr() + ":" + request.getRemotePort();
Run Code Online (Sandbox Code Playgroud)
但如果浏览器查找 localhost,则查找:
request.getRemoteHost().
Run Code Online (Sandbox Code Playgroud)
所以你基本上可以有这样的东西:
if (requestUrl.equals(yourAPIURL)){
//allow access
response.setHeader("Access-Control-Allow-Origin", requestUrl);
}
Run Code Online (Sandbox Code Playgroud)
避免添加,*因为某些浏览器和 API 仍然不允许这样做,并且如果您使用的是浏览器,则可能会被预检请求拒绝。
确保按照帖子中所述正确添加标头和方法。
希望能解决您的问题。
| 归档时间: |
|
| 查看次数: |
8502 次 |
| 最近记录: |