Cordova ajax调用在真实设备上失败,并在模拟器中工作

Cordova ajax调用在真实设备上失败,并在模拟器中工作,ajax,cordova,Ajax,Cordova,我有一个带有一些Ajax调用的Cordova应用程序。一切正常,除了一个电话,我上传了一些通过摄像头拍摄的照片(通过base64编码) 问题是,在Genymotion emulator(Nexus 5)上,调用工作正常,而在真正的Nexus 5上,调用失败,出现错误500,我真的不知道为什么 以下是Ajax调用的代码: $('.add-coupon').on('click', function() { var dt = { "api_token": localStora

我有一个带有一些Ajax调用的Cordova应用程序。一切正常,除了一个电话,我上传了一些通过摄像头拍摄的照片(通过base64编码)

问题是,在Genymotion emulator(Nexus 5)上,调用工作正常,而在真正的Nexus 5上,调用失败,出现错误500,我真的不知道为什么

以下是Ajax调用的代码:

 $('.add-coupon').on('click', function() {
    var dt = {
        "api_token": localStorage['api_token'],
        "title": localStorage['c_title'],
        "description": localStorage['c_description'],
        "start_price": localStorage['c_price'],
        "third_level_category": localStorage['c_third'],
        "main_attachments": localStorage['image_0'],
        "post_attachments_1": localStorage['image_1'],
        "post_attachments_2": localStorage['image_2'],
        "post_attachments_3": localStorage['image_3']
    };
    $.ajax({
        url: 'http://www.XXXXXXXXXXXXXXX.com:8000/api/v1/upload',
        type: 'POST',
        data: JSON.stringify(dt),
        cache: true,
        async: true,
        success: function(data) {
            alert('ok');
            window.location = 'index-shop.html';
        },
        error: function(event, jqXHR, ajaxSettings, thrownError) {
            alert('[event:' + event + '], [jqXHR:' + jqXHR.responseText + '], [ajaxSettings:' + ajaxSettings + '], [thrownError:' + thrownError + '])');
        }
    });
 });
由于您可以看到在请求过程中没有发生任何特殊情况,我遗漏了什么

如果我用相同的数据打电话,即使是使用postman(chrome插件),一切都很好


编辑:如果我不拍任何照片(因此主附件结束,所有后附件都是空的),则调用可以工作。只有当我拍摄不起作用的图像时,我才这样做。

我通过添加以下代码解决了问题:

很明显,emulator图像非常小,一切正常,但对于普通图像,我得到以下错误:

App 15424 stderr: [ 2015-05-04 13:28:38.2529 15508/0x00000001a22140(Worker 1) utils.rb:84 ]: *** Exception RangeError in Rack application object (exceeded available parameter key space) (process 15508, thread 0x00000001a22140(Worker 1))

如果您使用的是网络之外的设备,那么这就是为什么会出现错误。对不起,“网络之外”是什么意思?为什么所有其他ajax调用都能正常工作?