2012-01-20 1 views
2

私はphpにjQuery ajaxを呼び出し、404が見つかりませんでした。私は何が欠けていますか? ブラウザからページ(非アヤックス)をリクエストすると、jsonデータが返されます。jQuery ajaxが404に渡すphpを呼び出す - 何が欠けていますか?

jQueryのAJAXでPHPを呼び出す:

$.post({ 
    url:'/jqgrid/nwproducts.php', 

    success:function(data){ 
     $('#auto').autocomplete({source:data.ProductName}); 
    } 
}); 

PHPコード:

<?php 
header("Content-Type: application/json"); 
header("HTTP/1.1 200 OK"); 

$arrayProduct = array(); 
$mysqli = new mysqli('localhost','login','passwd','northwind'); 
if ($mysqli->connect_error) { 
    die('Connect Error (' . $mysqli->connect_errno . ') ' 
      . $mysqli->connect_error); 
} 

$resultAll = $mysqli->query('select ProductName from products'); 

if (!$resultAll) 
{ 
    echo "error\n"; 
} else { 
    while ($obj = $resultAll->fetch_object()) { 
    array_push($arrayProduct,$obj); 
    } 


echo json_encode($arrayProduct); 
} 
?> 

私は放火犯で、次のエラーを取得しています:

http://localhost/jqgrid/%5Bobject%20Object%5D 404 Not Found 
+1

を働いていました...私はそこからPHPファイルに実際にアクセスできるかどうか調べ始めるでしょう。 –

+0

'/ jqgrid/nwproducts.php'の完全なURLは何ですか?また、そのURLをajaxと呼んでいますか?おそらくベースは絶対パスを正しく置かない、原因404はPHPエラーではない、それは間違ったURLです。 ajaxが実際に呼び出すURLをトレースします。 – YuS

+0

URLは正しいブラウジングで、jsonオブジェクトの配列を取得できます。私が戻ってくるURLにあるエラーの%5Bobject%20Objectが何であるかはわからない –

答えて

1

こんにちはPranay私はあなたのコードを使用し、少し修正が、それは404が何ページがあなたの `/ jqgrid/nwproducts.php`のURLで発見されなかったことを意味し、うまく

(function IsExists(pagePath) { 
     $.ajax({ 
      type: "POST", 
      url: pagePath, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      error: function(XMLHttpRequest, textStatus, errorThrown) { 
       alert(textStatus); 
      }, 
      success:function(result) { 
          $('#auto').autocomplete({source:result}); 
           } 
     }); 
    })('/jqgrid/nwproductsonly.php'); 
1

urlを入れて、 successオブジェクトからパラメータを外します。

$.post('/jqgrid/nwproducts.php', function(data) { 
    $('#auto').autocomplete({source:data.ProductName}); 
}); 

http://api.jquery.com/jQuery.post/

0

ページをご確認可能な場合はaccesssibleとページのウル提供適切なURLです。

可能であれば、もう一度スライスしてください.Ajax Fuctnionを使用すると、より柔軟に使用できます。

function IsExists(pagePath, dataString) { 
     //alert(pagePath); 

     $.ajax({ 
      type: "POST", 
      url: pagePath, 
      data: dataString, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      error: function(XMLHttpRequest, textStatus, errorThrown) { 
       alert(textStatus); 

      }, 
      success: 
           function(result) { 
            var flg = true; 
            if (result != null) { 

             flg = result.d; 

             if (flg == "True") { 
        alert('Success-true');           } 
             else { 
       alert('Success - false');           } 
            } 
           } 
     }); 

    } 
関連する問題