1
jsonレスポンスにアクセスするときに奇妙な問題に直面しています。JSONレスポンスがクロムコンソールで空です。CodeIgniter
私がURLにアクセス:http://testproject/api/index.php/admin_customers/
JSON応答:
[{"name":'abc'}, {"name":'def'}, "name":'xyz'}]
しかし、私はjqgridでアヤックスから同じことをしようとすると、私はすべてのデータを受信していないが。
私のコントローラコード:
class Api extends CI_Controller {
public function admin_customers(){
$query = "select * from customer";
$rows = $this->db->query($query);
$array_rows = $rows->result();
$json_data = json_encode($array_rows);
header('Content-Type: application/json');
echo $json_data;
}
}
ませ運も後として試みない:コンソールで
return $this->output
->set_content_type('application/json')
->set_status_header(200)
->set_output($json_data);
出力応答:
マイjQgridのJavaScriptコードがあります:
$("#data-grid").jqGrid({
url:'http://localhost/testproject/index.php/api/admin_customers/',
mtype: "GET",
datatype: "json",
colModel: [
{ label: 'Name', name: 'name', key: true, width: 75, editable: true}
],
editurl:'http://localhost/testproject/api/admin_customers_edit/',
viewrecords: true,
height: 250,
rowNum: 20,
pager: "#jqGridPager"
});
私は間違っていますか?
jQgridに関係なく、クロムコンソールの応答自体には表示されません。
そして、jsコードはどこですか? –
JavaScriptコードのファイルは**同じ原点ですか**?つまり、「http:// localhost/testproject/index.php/api/admin_customers /」というURLを '' testproject/index.php/api/admin_customers/''のように置き換えることができますか?あなたは[同じ起源](https://en.wikipedia.org/wiki/Same-origin_policy)の問題がある可能性があります。 – Oleg
はい、同じドメインのものです。私はすべての私のプロジェクトフォルダを別のフォルダにコピーして、http:// localhost/testproject-api/api/admin_customersを使ってレストコールを試してみましたが、http:// localhost/testproject /を使っていますが、見た。 localhostのためですか?この状況をどう扱うか。他の選択肢がないので、すべてのファイルを同じドメインから提供する必要があります – Mithun