0

我試圖從外部本地文件使用JS從salesforce獲取記錄。 我可以在網絡標籤中看到一個響應。 i的控制檯接收的錯誤消息:salesforce響應中的跨源問題(訪問控制 - 允許來源)

「 XMLHttpRequest的不能加載https://login.salesforce.com/services/oauth2/token否‘訪問控制允許來源’標題存在於所請求的資源來源‘空’因此是不允許的訪問」。

mycode的:

$.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); 
} 

任何幫助和建議。

+1

這應該是能夠在服務器端和跨域數據訪問或者使用'jQuery.getJSON()'或'jQuery.ajax ()'。 – Jai

+1

您的服務器必須允許您的起源 – M14

+1

如果您使用的是Windows,你可以測試: 運行在命令promp這些下面的命令[視窗]: 'CD C:\ Program Files文件(x86)的\谷歌\鍍鉻\ Application' '> chrome.exe --user-data-dir =「C:/ Chrome開發會話」--disable-web-security' –

回答

0

在你的選項添加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); 
 
}

+0

在這種情況下不起作用。 – Jai

+0

是的,這取決於服務器是否阻止CORS。 – ricky

+0

@ Jai,@ ricky SO需要將銷售人員端的本地白名單? – soundar