【问题标题】:Cross origin issue in salesforce response(Access-Control-Allow-Origin)Salesforce 响应中的跨域问题(Access-Control-Allow-Origin)
【发布时间】:2017-05-17 05:18:35
【问题描述】:

我尝试使用 JS 从外部本地文件中获取 salesforce 的记录。 我可以在网络选项卡中看到响应。 我在控制台中收到一条错误消息:

“XMLHttpRequest 无法加载 https://login.salesforce.com/services/oauth2/token。请求的资源上不存在 'Access-Control-Allow-Origin' 标头。因此不允许访问 Origin 'null'。”

我的密码:

$.post("https://login.salesforce.com/services/oauth2/token",
{
    grant_type:"password",
    dataType : 'jsonp',
    headers : {Accept : "application/json","Access-Control-Allow-Origin" : "*"},
    client_id:"CLIENTID",
    client_secret:"CLIENTSECRET",
    username: "uname",
    password: "password"
},
function(data,status){
    //my_function(data);
    console.log(data);
});
function my_function(data){
    alert(data);
}

任何帮助和建议。

【问题讨论】:

  • 这必须在服务器端启用,对于跨域数据访问,请使用jQuery.getJSON() 或jQuery.ajax()。
  • 您的服务器必须允许您的来源
  • 如果你使用的是windows,你可以测试:在命令提示符[Windows]中运行以下命令:cd C:\Program Files (x86)\Google\Chrome\Application> chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

标签: javascript jquery salesforce salesforce-service-cloud salesforce-communities


【解决方案1】:

在您的选项中添加crossOrigin: true

$.post("https://login.salesforce.com/services/oauth2/token",
{
    grant_type:"password",
    dataType : 'jsonp',
    crossOrigin : true,   /// Add this option 
    headers : {Accept : "application/json","Access-Control-Allow-Origin" : "*"},
    client_id:"CLIENTID",
    client_secret:"CLIENTSECRET",
    username: "uname",
    password: "password"
},
function(data,status){
    //my_function(data);
    console.log(data);
});
function my_function(data){
    alert(data);
}

【讨论】:

  • 在这种情况下无济于事。
  • 是的,这取决于服务器是否不阻塞 CORS。
  • @Jai,@ricky 所以需要在 salesforce 端将本地列入白名单?
猜你喜欢
  • 1970-01-01
  • 2014-10-27
  • 1970-01-01
  • 2013-11-23
  • 2012-08-10
  • 2019-02-28
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
相关资源
最近更新 更多