Salesforce拒绝设置不安全的标题“User-Agent”

时间:2014-07-29 19:59:29

标签: javascript ajax salesforce

我正在尝试在远程应用上创建用户登录/注册,以访问Salesforce上的用户数据。我通过Salesforce REST API从javascript执行此操作。由于CORS限制,这无法直接使用javascript请求,因此我找到了this example。我的代码如下:

    var result = sforce.connection.login('example@provider.com', 'pass'+'securityToken');
    sforce.connection.init(result.sessionId, 'https://login.salesforce.com/services/oauth2/token')

    sforce.connection.remoteFunction({
        url: 'https://login.salesforce.com/services/oauth2/token',
        requestHeaders: {
            "Authorization" : "Bearer " +__sfdcSessionId,
            "Content-Type":"application/json",
            "Connection":"Keep-Alive"
        },
        method: "GET",
        onSuccess : function(response) {
            console.log("Success " + response)
        },
        onFailure: function(response) {
            console.log("Failed " + response)
        }
    });

当我运行此代码时,我收到以下错误:

1)拒绝设置不安全的标题" User-Agent"
2)POST http:///services/Soap/u/31.0 404(未找到)
3)远程调用失败,原因是:

<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /services/Soap/u/31.0 was not found on this server.</p>
</body></html>
 status code: 

使用代码编辑器我可以看到在点击sforce.connection.login()脚本之后发生了错误,并且从未在我的代码中将其发送到sforce.connection.init()脚本。

如何解决此问题,以便我可以从远程Web应用程序登录用户并访问salesforce中的用户信息?

1 个答案:

答案 0 :(得分:0)

您的问题似乎与this post

中的问题相似

不允许XMLHttpRequest设置这些标头,它们由浏览器自动设置。原因是通过操纵这些头文件,您可能会欺骗服务器通过相同的连接接受第二个请求,这个连接不会通过通常的安全检查 - 这将是浏览器中的安全漏洞。