【问题标题】:Chrome packaged apps Cannot read property 'protocol' of undefined at urlIsSameOriginChrome 打包的应用程序无法读取 urlIsSameOrigin 处未定义的属性“协议”
【发布时间】:2013-12-08 19:57:43
【问题描述】:

中出现以下错误“无法读取未定义的属性‘协议’ 在 urlIsSameOrigin"

以下是控制台中的消息。

at chrome-extension://ekcelkaofohapfaiajpiilcaelhfnkmj/angular/angular.min.js:9984:21
at chrome-extension://ekcelkaofohapfaiajpiilcaelhfnkmj/angular/angular.min.js:17691:17
at Scope.$eval (chrome-extension://ekcelkaofohapfaiajpiilcaelhfnkmj/angular/angular.min.js:11697:28)
at Scope.$apply (chrome-extension://ekcelkaofohapfaiajpiilcaelhfnkmj/angular/angular.min.js:11797:23)
at HTMLFormElement.<anonymous> (chrome-extension://ekcelkaofohapfaiajpiilcaelhfnkmj/angular/angular.min.js:17690:21)
at HTMLFormElement.x.event.dispatch (chrome-extension://ekcelkaofohapfaiajpiilcaelhfnkmj/jquery/jquery-2.0.3.min.js:5:10006)
at HTMLFormElement.y.handle (chrome-extension://ekcelkaofohapfaiajpiilcaelhfnkmj/jquery/jquery-2.0.3.min.js:5:6789) 

我是 chrome 应用程序和 Angular 的新手。这是我正在尝试的代码

    var post = {
        email : $scope.login.email,
        pass : $scope.login.password
    };

    var config = {
        params : {
            login_attempt : loginAttempts
        }
    };

    $http('POST', 'facebook.com/login.php', post, function(status, response) {
        console.log('Success');
    }, function(status, response) {
        console.log('Error');
    });

这是一个简单的http post。

【问题讨论】:

  • 如果没有应用程序的代码,很难理解您的问题。清单是什么?背景页面是什么?这段代码 sn-p 在什么上下文中运行?
  • 你试过http://facebook.com/login.php吗?或https://... 来自angular.js 代码:函数urlResolve() 期望有一些协议。
  • 上面的代码是在controller.js文件中调用的,而不是在background.js中。清单除了权限没有什么特别的(检查第一个答案)

标签: javascript angularjs google-chrome-app


【解决方案1】:

我得到了用于发送请求的简单 ajax 调用

var data = new FormData();
data.append('email', $scope.login.email);
data.append('pass', $scope.login.password);


var url = 'https://www.facebook.com/login.php?login_attempt=1';
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.open('POST', url, true);
// xhr.setRequestHeader('origin', 'https://facebook.com');
// xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onload = function() {
    var state;
    switch(this.readyState) {
        case 0:
            state = 'request not initialized';
            break;
        case 1:
            state = 'server connection established';
            break;
        case 2:
            state = 'request received';
            break;
        case 3:
            state = 'processing request';
            break;
        case 4:
            state = 'request finished and response is ready';
            break;
    }
    state += ' ';
    state += xhr.status;
    console.log(state);
    $('.result').html(state);
};
xhr.send(data);

我现在收到来自 facebook.com 的 301 响应,后跟一个 invalid_login 页面。

仅供参考,manifest.json 具有以下属性

"permissions": ["http://*.facebook.com/*", "https://*.facebook.com/*"],

【讨论】:

    猜你喜欢
    • 2014-02-16
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 2021-11-03
    • 2022-10-06
    • 1970-01-01
    • 2021-07-25
    相关资源
    最近更新 更多