2

我正在客户端使用 Extjs-6.0.0 开发一个应用程序。我在端口 80运行客户端应用程序。我的服务器端应用程序在端口 8084中运行。我想创建一个 Ajax 请求来向服务器发送请求,该请求具有以下属性:

在此处输入图像描述

var json = {
    "@class": "ir.javan.geoad.entity.Melk",
    "title": "itsme",
    "description": "Hi all",
    "callPhone": "0912312312",
    "address": "ya ali",
    "accuracy": "MANTAQE",
    "user": {
        "email": "itsme.mm@gmail.com",
        "name": "asdf",
        "family": "asdf"
    }
};
Ext.Ajax.request({
    url: 'http://localhost:8084/GeoAd/ad/Add',
    useDefaultXhrHeader: false,
    method: "POST",
    cors: true,
    headers: {
        "Content-Type": "application/json"
    },
    jsonData: json,
    success: function(response){
        text = response;
    }
});

但这不起作用。我该怎么做

4

3 回答 3

2

因为您的服务器端应用程序位于不同的端口上,所以除非您在响应中有相应的标头,否则对它的 AJAX 请求将不起作用Access-Control-Allow-Origin。这是一个CORS(跨域资源共享)的东西。

在这里阅读更多信息:http: //dev.housetrip.com/2014/04/17/unleash-your-ajax-requests-with-cors/

于 2015-08-17T03:16:43.037 回答
1

这是由于 CORS 而发生的。

您必须禁用浏览器安全才能访问此类请求。

对于 Chrome,以下帖子可能对您有用 -

在 Chrome 中禁用同源策略

于 2015-09-13T14:18:42.530 回答
0

正如其他人指出的那样,这是一个CORS问题。

如果您不想完全禁用同源策略,可以在需要时使用此 Chrome 扩展程序进行 CORS 调用。

于 2016-06-07T05:30:15.133 回答