簡體   English   中英

這個Uncaught SyntaxError有什么錯誤:意外的令牌<在jquery中使用eval時?

[英]what error is this Uncaught SyntaxError: Unexpected token < when using eval in jquery?

我有一個簡單的ajax調用:

function message(){
    $.ajax({
        type: "GET",
        url: "/file/timestamp="+ timestamp,
        async: true,
        cache: false,
        success: function(data){
            var json = eval('('+data+')');
            console.log(json);
        }
    });
}

我得到一個錯誤Uncaught SyntaxError: Unexpected token <在這一行: var json = eval('('+data+')');

有任何想法嗎?

謝謝。

編輯:錯誤的一些更多細節:

$.ajax.successajax.js:9
f.Callbacks.njquery.js:2
f.Callbacks.o.fireWithjquery.js:2
wjquery.js:4
f.support.ajax.f.ajaxTransport.send.d

這里有一些PHP如果有幫助

public function fileAction()
{
    $this->getHelper('viewRenderer')->setNoRender();

    $filename = '/test/text.txt';

    $front  = Zend_Controller_Front::getInstance();
    $data   = $front->getRequest()->getParams();

    $lastModif      = !empty($data['timestamp']) ? $data['timestamp'] : 0;
    $currentModif   = filemtime($filename);

    while($currentModif <= $lastModif){
        usleep(10000);
        clearstatcache();
        $currentModif = filemtime($filename);
    }

    $response = array();
    $response['msg'] = file_get_contents($filename);
    $response['timestamp'] = $currentModif;

    echo json_encode($response);
}

如果我運行此操作我得到json: {"msg":"message","timestamp":1331599879}但由於某種原因,響應不是這個,而是一些html

這取決於內部data 你正在運行eval ,所以無論運行什么data 請在這里發布data

你期望作為數據返回什么? 運行eval會嘗試執行(數據),這似乎不是正確的javascript。 如果您只想存儲字符串,則可以執行以下操作:

var json = "(" + data + ")";

jholloman幾乎擁有它......

var json = eval("(" + data.responseText + ")");

暫無
暫無

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

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