我有一个Spring Swagger应用程序,我可以在localhost上成功运行。但是当我在Heroku上运行相同的项目时,我得到以下错误:
XMLHttpRequest无法加载http://force-com-rest-swagger.herokuapp.com/api/doc/api/v1/account.Originhttps://force-com-rest-swagger.herokuapp.com不允许访问控制允许原点。
下面是我的招摇过市js配置:
<script type="text/javascript" th:inline="javascript">
$(document).ready(function () {
displaySwaggerDocuments();
function displaySwaggerDocuments() {
var url = '<c:url value="/api/resourceList"/>';
window.swaggerUi = new SwaggerUi({
discoveryUrl: url,
dom_id: "swagger-ui-container",
supportHeaderParams: false,
supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
apiKey: "",
onComplete: function (swaggerApi, swaggerUi) {
if (console) {
console.log("Loaded SwaggerUI")
console.log(swaggerApi);
console.log(swaggerUi);
}
$('pre code').each(function (i, e) {
hljs.highlightBlock(e)
});
},
onFailure: function (data) {
if (console) {
console.log("Unable to Load SwaggerUI");
console.log(data);
}
},
docExpansion: "none"
});
window.swaggerUi.load();
}
});
</script>
有什么建议吗?
基本上,您需要在服务器中启用CORS——也许您的本地主机启用了CORS,但在Heroku中没有启用(我对Heroku一无所知)。
您需要服务器返回以下标题:
访问控制允许方法:POST,GET,OPTIONS,PUT
访问控制允许来源:*
通常,这是通过添加一个过滤器来完成的,该过滤器将此添加到所有招摇过市请求(源自招摇过市UI的请求)
您可以在
招摇过市资料中找到这方面的例子
最新消息:我在招摇过市消息来源中的确切位置链接已经失效;这里是指向他们当前存储库的链接。
解决方案是设置basPath:
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.knappsack.swagger4springweb.controller.ApiDocumentationController;
@Controller
@RequestMapping("/api")
public class ApiController extends ApiDocumentationController{
public ApiController() {
setBasePath("https://force-com-rest-swagger.herokuapp.com");
setBaseControllerPackage("com.example.controller.api");
setBaseModelPackage("com.example.model");
setApiVersion("v1");
}
@RequestMapping(value = "/", method = RequestMethod.GET)
public String documentation() {
return "api";
}
}
问题内容: 我尝试使用以下代码通过$ http(角度)发送http请求: 但这不起作用,并且我在Web控制台中有此错误: 你有解决方案吗 ? 问题答案: 您看到此错误是由于在浏览器中实现的称为Same Origin Policy的安全机制所致。 基本上,这是由于您的网页尝试访问驻留在与网页本身不同的主机,端口或方案(HTTP / HTTPS /文件等)所在的服务器上的资源而引起的。 为了解决此问题
我正在创建一个脚本,加载在其他网站的外部。它加载CSS和HTML,在我自己的服务器上工作得很好。 但还是不管用。
我有错误: XMLHttpRequest 无法加载 http://localhost:5984/cp_config/。当凭据标志为 true 时,不能在“访问控制-允许-源”标头中使用通配符“*”。因此,不允许访问源“http://localhost”。XMLHttpRequest 的凭据模式由 withCredentials 属性控制。 但我有一个标题: 我该如何解决这个问题?
问题内容: 我正在使用以下脚本- 我尝试访问的计算机正在运行播放框架。我收到以下错误: 选项404(未找到)jquery-1.9.1.min.js:5 XMLHttpRequest无法加载。原产地不被访问控制允许来源允许的。 我已经难过了两天,有人可以帮我吗? 提前谢谢 问题答案: 问题是您正在尝试进行跨域调用(从到)。Same Origin Policy 不允许这样做,因此浏览器试图使用跨域资源
你有解决办法吗?
此url位于AWS API网关中,方法为get,stage部署良好。我在aws文档之后启用了CORS。 -资源->操作->启用CORS->默认设置->启用CORS并替换CORS头。在CORS结果中没有错误日志。 我不是profesional web开发人员,我的浏览器是Safari。 以下是我查询“http://my.com”的代码 控制台打印错误:XMLHttpRequest不能加载“http: