我正在尝试从另一个域连接到我的websocket。服务器位于localhost:8098上,客户端位于localhost:8080上。每次尝试连接时,我都会收到“访问控制允许源代码”错误,我还添加了。setAllowedOrigins(“*”)
。
不确定少了什么。
服务器
@Configuration
@EnableWebSocketMessageBroker
public class webSocketObjects implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws/Object").setAllowedOrigins("*").withSockJS();
}
客户
<script>
let stompClient=null;
import Stomp from 'stompjs';
import SockJS from 'sockjs-client'
export default {
name: "modal",
props: ['node'],
data() {
return{
bacnetObject: '',
status: "disconnected"
}
},
mounted() {
this.bacnetObject = this.node;
},
methods: {
connect: function(){
const socket = new SockJS('http://localhost:8098/ws/Object');
stompClient = Stomp.over(socket);
stompClient.connect({
}, function (frame) {
console.log('Connected: ' + frame);
stompClient.subscribe('/topic/user', console.log(String.body))
})
},
disconnect: function () {
stompClient.disconnect();
}
}
}
</script>
我得到的错误是:
CORS 策略已阻止从源“http://localhost:8080”在“http://localhost:8098/ws/Object/info?t=1571728150435”处访问 XMLHttpRequest:请求的资源上不存在“访问控制-允许-源”标头。
如果您使用的是凭据,则根据 MDN 的文档,*
将不起作用。请尝试改为指定主机。
对于没有凭据的请求,可以将文本值“*”指定为通配符;该值告诉浏览器允许来自任何源的请求代码访问资源。尝试将通配符与凭据一起使用将导致错误。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
另一方面,有时根据您的情况,您可能需要处理这些标题
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: header1, header2 ...
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Preflighted_requests
我有错误: 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:
问题内容: 我尝试使用以下代码通过$ http(角度)发送http请求: 但这不起作用,并且我在Web控制台中有此错误: 你有解决方案吗 ? 问题答案: 您看到此错误是由于在浏览器中实现的称为Same Origin Policy的安全机制所致。 基本上,这是由于您的网页尝试访问驻留在与网页本身不同的主机,端口或方案(HTTP / HTTPS /文件等)所在的服务器上的资源而引起的。 为了解决此问题
我正在创建一个脚本,加载在其他网站的外部。它加载CSS和HTML,在我自己的服务器上工作得很好。 但还是不管用。
我在AngularJS中创建了一个应用程序,并尝试调用Laravel API: MyApp(AngularJS):http://localhost:8080/ API(Laravel样板文件):http://localhost:8000/ api_routes.php: