1

出于某种原因,我无法在我的新类固醇项目中进行 AJAX 跨域调用。Weinre 不会显示它们,更不用说控制台中的任何 JS 错误。

我已经使用常规浏览器在 Apache 中测试了这段代码,并且调用成功,身份验证甚至可以正常工作。但是在 Ad-Hoc 模式下,什么都不会触发。

onclick偶数触发是因为我收到了警报。我什至在 ajax 调用之前收到警报,但 ajax 根本不会触发。

var baseUrl = 'http://www.domain.com/form/apiv1/index.php/';
$(document).ready(function() {
    $('#login').click(function () {
        if($('#kairosid').val() <= '' || $('#kairosid').val() == '0') {
            alert('Please enter an ID to continue');
            return false;
        } else {
            alert('calling json');
            $.ajax({
                type: 'GET',
                url: baseUrl+'phoneauth/'+$('#kairosid').val()+'?callback=?',
                async: true,
                dataType: 'jsonp',
                jsonpCallback: 'processJSON',
                    crossDomain: true,
                headers: {
                    "Authorization": "Basic " + btoa(lkey+':'+lhash)
                },
                success: function ( data ) {
                    alert('done');
                    if(data == 'null' || data <= '') {
                        alert('Sorry, there was a problem with the request');
                    } else {
                        alert('loading '+data);
                        hashes = data;
                        var fields = ["phoneNumbers", "name"];
                        navigator.contacts.find(fields, apiLoginSuc, apiLogError);
                    }
                }
            });
        }
    });
});

就像我说的,如果我将它转移到 Apache 并在那里运行,它运行得很好,调用 API 并完美地登录。

在我的 PHP 文件中,我将其放在顶部以确保:

header("Access-Control-Allow-Origin: *");

Weinre 中什么也没有出现:

在此处输入图像描述

但是,如果我从 URL 前面删除 HTTP,它当然可以工作。使用 HTTP 它不起作用。这里给了什么?

编辑: Weinre 日志:

2014-06-05T19:57:38.795Z 类固醇:
DOMNotify.childNodeInserted([4,83,{"id":116,"nodeType":1,"nodeName":"SCRIPT","localName":"script", "nodeValue":null,"childNodeCount":0,"attributes":["async","","src"," http://www.domain.com/form/apiv1/index.php/phoneauth/7 ?callback=processJSON&_=1401998264894 "]},null])

4

0 回答 0