【问题标题】:Android Cross-domain error in local server本地服务器中的Android跨域错误
【发布时间】:2014-07-30 14:30:38
【问题描述】:

我正在使用 phoneGap-2.9.0

我无法在本地服务器中访问我的api.php 页面。我收到了error! 警报。

请检查我的代码:

Javascript

$(document).ready(function () {
    $('#registerForm').submit(function(){ 
        var postData = $(this).serialize();
        var formUrl = $(this).attr('action');
        $.ajax({
            type: 'POST',
            url: formUrl,
            dataType : 'json',
            data: postData,         
            success: function(data){
                alert(data);
            },
            error: function(){
                alert('error!');
            }
        }); 


        return false; 
    }); 
}); 

HTML

<form name="registerForm" id="registerForm" method="post" action="http://localhost/android/REST_API/api.php">
        <label>First Name :</label>
        <input type="text" name="first_name" id="first_name" placeholder="First Name" />
        <label>Last Name :</label>
        <input type="text" name="last_name" id="last_name" placeholder="Last Name" />
</form>

api.php

<?php header('Access-Control-Allow-Origin: *'); echo "true"; ?>

上面的代码我在浏览器中运行它工作正常。但它在设备模拟器中不起作用。在模拟器中,如果我使用http://www.raddyx.in/api.php 而不是http://localhost/android/REST_API/api.php,我就是true

请告诉我问题所在。

截图:

【问题讨论】:

  • 您似乎没有在服务器上处理预检请求 (OPTION)。 -->dinochiesa.net/?p=754
  • 您不能使用localhost,请尝试改用IP地址
  • @DawsonLoudon 是的,我正在使用127.0.0.1 它也无法正常工作。
  • @h3li0s 请解释一下你的(选项)
  • 通读您编辑的问题后,这似乎不是一个预先问题。这似乎是模拟器的一些问题。您可以尝试捕获模拟器发送给服务器的http请求,与您的浏览器发送的http请求进行比较。

标签: javascript php android ajax cordova


【解决方案1】:

我不确定为什么会这样JSON 那么您的问题应该在模拟器上解决,因为这可以避免模拟器可能认为正在发生的任何跨域安全漏洞。

$(document).ready(function () {
$('#registerForm').submit(function(){ 
    var postData = $(this).serialize();
    var formUrl = $(this).attr('action');
    $.ajax({
        type: 'POST',
        url: formUrl,
        dataType : 'jsonp',
        data: postData,         
        success: function(data){
            alert(data);
        },
        error: function(){
            alert('error!');
        }
    }); 


    return false; 
}); 
}); 

【讨论】:

  • 你好`$res['result']='success'; echo json_encode($res);` 当我使用 jsonp 而不是 json 时不工作请帮助我。
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 2018-03-23
  • 2014-02-21
  • 2011-11-03
  • 2018-04-01
  • 2015-06-11
  • 2020-10-11
  • 2016-06-14
相关资源
最近更新 更多