jquery - 如何解决请求的资源上不存在 'Access-Control-Allow-Origin' header

标签 jquery ajax rest cors access-control

CORS: 大多数开发人员在从另一个域访问休息服务时都会遇到一个非常常见的问题,我也是如此。

我收到此错误:

请求的资源上不存在“Access-Control-Allow-Origin” header 。来源'http://localhost:8080 ' 因此不允许访问。

下面是jsp片段。

<html>
<head>
<meta content="text/html; charset=utf-8">
<title>AJAX JSON SAMPLE</title>
<script type="application/javascript">	
function load() 
{ 
   var url = "https://samplewebapp1.herokuapp.com/rest/json/get";//use any url that have json data 
   var request; 
   if(window.XMLHttpRequest){   
    request=new XMLHttpRequest();//for Chrome, mozilla etc 
   }   
   else if(window.ActiveXObject){   
    request=new ActiveXObject("Microsoft.XMLHTTP");//for IE only 
   }   
   request.onreadystatechange  = function(){ 
      if (request.readyState == 4  ) 
      { 
        var jsonObj = JSON.parse(request.responseText);//JSON.parse() returns JSON object 
        document.getElementById("appName").innerHTML =  jsonObj.appName; 
        document.getElementById("language").innerHTML = jsonObj.language; 
      } 
   } 
   	request.open("GET", url, true); 
	request.send();  
} 
</script>
</head>
<body>
	appName:
	<span id="appName"></span>
	<br /> language:
	<span id="language"></span>
	<br />
	<button type="button" onclick="load()">Load Information</button>

</body>

</html>

下面是该服务的其余服务实现。

`package com.heroku.rest;
 import java.util.Date;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;

 import com.heroku.model.Heroku;

 @Path("/json")
 public class HerokuRestService {

 @GET
 @Path("/get")
 @Produces(MediaType.APPLICATION_JSON)
 public Heroku getTrackInJSON() {
         return new Heroku("My First Heroku", "Java", new Date().toString());
    }    }`

我错过了什么?

最佳答案

您正在尝试对其他域执行 XmlHttpRequest。您可以简单地使用 CORS 告诉您的浏览器允许它。 (由于某些安全原因,它完全是特定于浏览器的)。

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en-US使用此扩展允许访问无“access-control-allow-origin” header 请求。

或者,您也可以手动配置 CORS。就像这里描述的 https://www.html5rocks.com/en/tutorials/cors/

关于jquery - 如何解决请求的资源上不存在 'Access-Control-Allow-Origin' header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49883790/

相关文章:

mysql - 如何将我的 MEAN 应用程序转换为使用 mySQL

javascript - 用于移动设备的配置文件 javascript

javascript - 检测 AJAX 帖子的成功或失败

javascript - 我如何通过ajax解析html

php - 带有图像的 REST API

rest - 在不发出 HTTP 请求的情况下获取 RestSetResponse 的输出

javascript - 使用 jQuery 的照片库(幻灯片)

javascript - 将 cleditor 的文本方向从右到左更改?

javascript - 包括 JQuery 淡出

php - 登录时加载页面并且仅在登录时加载页面