簡體   English   中英

從ajax請求獲取javascript對象

[英]Get javascript object from ajax request

如何從AJAX響應創建javascript對象?

這就是我目前正在做的事情:

PHP:

<?
echo '{status:"1", site:"example.com"}';
?>

JS:

success:function(data_response){
    var object = eval( data_response );
    console.log(object.url);
    }});

我目前正在控制台上“未定義”。 這是怎么做到的?

將ajax請求的dataType設置為jsondata_response將是已解析為的對象。

或者您也可以使用$.getJSON

你也可以嘗試這樣的事情:

PHP

<?
echo json_encode(array("status"=>1,"site"=>"example.com"));
?>

Ajax用JS中的params調用這里

$.ajax({
  url: url, // your url where the php is
  dataType: 'json', 
  data: data, //send data
//callback
  success: function(data_response){  
      alert(data_response.status);
      alert(data_response.site);
}
});

而不是制作自己的json表示法使用內置於json_encode php

<?php
    return json_encode(array('status' => '1', 'site' => 'example.com'));
?>

你也記錄了object.url但它應該是object.site

您可能還需要設置標題以返回application/json而不是text/html 這也可以通過在json AJAX請求中指定dataType類型參數來完成

如果要使用eval解析原始對象字符串,則必須將對象表示法代碼包裝在parens中:

var object = eval( '(' + data_response + ')' );

以下將阻塞解析器:

eval('{status:"1", site:"example.com"}')

但這將按預期工作:

eval('({status:"1", site:"example.com"})')

編輯:請注意,我不一定認可這個解決方案。 這只是讓你了解如果你要使用eval需要什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM