从php文件+;AJAX

从php文件+;AJAX,php,javascript,ajax,json,curl,Php,Javascript,Ajax,Json,Curl,我想用javascript获取加载到PHP文件中的数据。 我就是这么做的: $("#submit").click(function() { // GET VALUE OF APPID var appid = $("#appid").val() // GET JSON FROM PHP SCRIPT $.ajax({ type: 'GET', url: '../loadjson.php', data: {

我想用javascript获取加载到PHP文件中的数据。 我就是这么做的:

$("#submit").click(function() {
    // GET VALUE OF APPID
    var appid = $("#appid").val()
    // GET JSON FROM PHP SCRIPT
    $.ajax({
        type: 'GET',
        url: '../loadjson.php',
        data: {
            'appid': appid
        },
        success: function (data) {
            alert('success');
        },
        error: function(jqXHR,error, errorThrown) {  
            if(jqXHR.status&&jqXHR.status==400){
                alert(jqXHR.responseText); 
            }else{
                alert("Something went wrong");
            }
        }
    });

});
当我点击一个按钮时,我得到一个文本框的值并调用ajax函数。 我的javascript文件位于root/js/file.js中,我的php文件位于root/loadjson.php中

我的PHP文件:

<?php

if(isset($_POST['appid']) && !empty($_POST['appid'])) {
    $appid = $_POST['appid'];
}
$json_url  ='http://api.url.com/api/gateway/call/1.4/getApp?appid=' . $appid;

$ch = curl_init($json_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$str = curl_exec($ch);
curl_close($ch);

$data = json_decode($str);

$array = $data;
$object = $array->app[0]; 

echo $object;

问题是我总是收到一个带有“出了问题”的警告框,但我找不到解决方案。有人看到我的错了吗

我明白了:

jshiddle:

尝试给出

url:'loadjson.php'


在你的js文件中我不确定,但在你的js代码中我看到了

 type: 'GET',
但在php代码中使用POST方法来加载值

if(isset($_POST['appid']) && !empty($_POST['appid'])) {
    $appid = $_POST['appid'];
}

您正在发出一个
GET
ajax请求,并且依赖于脚本中的
$\u POST
信息,只需使用
$\u GET

您将收到未定义var
$appid
的通知,单击devtools中的红色行查看您得到的响应以及相关的错误代码

$.ajax({
        type: 'GET',
        url: '../loadjson.php',
        datatype: 'json' ,
        data: {
            'appid': appid
        },
...
您不是在阻止表单提交,而是在使用表单和 输入按钮提交类型。所以,当你点击这个按钮时 正在提交的表格。因此,首先,您在 ajax代码

第二件事是,在ajax代码和 试图通过php代码中的“POST”获取值。所以,请使用$\u GET 或者更改ajax代码类型:“POST”

第三件事是你的url是无效的,你应该使用它 url:'loadjson.php'

我在这里分享代码:

//Ajax code
$(function () {
    $("#submit").click(function (e) {
        // stop form submission first
        e.preventDefault();
        // GET VALUE OF APPID
        var appid = $("#appid").val()
            // GET JSON FROM PHP SCRIPT
            $.ajax({
                type : 'POST',
                url : 'loadjson.php',
                data: {'appid':appid},
                success : function (d) {
                    alert(d);
                },
                error : errorHandler
            });
    });
});

function errorHandler(jqXHR, exception) {
    if (jqXHR.status === 0) {
        alert('Not connect.\n Verify Network.');
    } else if (jqXHR.status == 404) {
        alert('Requested page not found. [404]');
    } else if (jqXHR.status == 500) {
        alert('Internal Server Error [500].');
    } else if (exception === 'parsererror') {
        alert('Requested JSON parse failed.');
    } else if (exception === 'timeout') {
        alert('Time out error.');
    } else if (exception === 'abort') {
        alert('Ajax request aborted.');
    } else {
        alert('Uncaught Error.\n' + jqXHR.responseText);
    }
}

希望,你知道你错在哪里:)

试着提醒一些有用的东西,比如
alert(thrownError)。我已经这样做了,但它没有显示任何内容。只是一个空警报框…请帮助我了解您需要什么
$array=$data
for?@Rikesh我们知道这不是一个400错误,您可以在浏览器中使用开发工具查看请求和响应吗?请提供url或JSFIDLE。我不想返回json,但取决于我发送的值。为什么不在php中使用get方法?问题在于php脚本。尝试打印php代码中使用的变量。