No' Access-Control-Allow-Origin'标题错误但POST无论如何都要通过

时间:2015-06-17 15:33:25

标签: javascript jquery ajax

所以,我有这个JavaScript函数,它执行一个简单的jQuery AJAX()请求:

function impLeads() {

    var go_health_id = $(".sync-action").data("subscriber");
    var customer_number = $(".sync-action").data("customer-number");
    var lead_type = $(".sync-action").data("lead-type");

    var person = {
        lead_type: lead_type,
        customer_number: customer_number,
        subscriber_id: go_health_id,
        first_name: "Daniel",
        last_name: "Endo",
        phone: "(937) 555-5555"
    }

    $.ajax({
    type: "POST",
    crossDomain: true,
    dataType: "json",
    data: person,
    url: "https://www.brokeroffice.com/leads/leadImport.do",
    cache: false,
    success: function(html) {
            $(".debug").show().html(html);
            console.log('Leads imported for ' + go_health_id);
        }
    });
}

现在......这是BrokerOffice.com的HTTP帖子。可以通过HTTP POST将潜在客户数据导入BrokerOffice。端点网址= https://www.brokeroffice.com/leads/leadImport.do。我正在从http://mycompanysite.com/leads/执行此脚本。请注意,他们有https://www而我的却没有。{/ p>

然而,当我进入BrokerOffice.com时,我看到领导已成功发布到他们的数据库中,所以...尽管有这样的警告:

XMLHttpRequest cannot load https://www.brokeroffice.com/leads/leadImport.do. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://mycompanysite.com' is therefore not allowed access.

请求已经完成。

问题是我不得不多次对循环请求这样的JavaScript错误将阻止循环继续执行。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

该标题只是阻止您从服务器看到响应(而不是发送请求)。

  

问题是我不得不多次对循环请求这样做   JavaScript错误将阻止循环继续   执行。

     

我该怎么办?

你能做什么?需要更改服务器的响应头以允许跨源通信。如果您无权更改服务器,那么您可能会失去运气。

答案 1 :(得分:0)

正如@apsillers所提到的,你可以发送请求,他们会到达那里。你无法得到答复。

如果您需要阅读回复,可以:

  1. 在服务器上使用轻型CORS代理,例如https://github.com/gr2m/CORS-Proxy
  2. 使用http://crossorigin.me/
  3. 等托管代理