jquery ajax請求成功後eval(data)報錯 SyntaxError: missing ; before statement

來源:互聯網
上載者:User

在一次請求中

$.ajax({
                cache : true,
                type : "POST",
                url : "getDataList.action",
                async : false,
                error : function(request) {
                    alert("Connection error");
                },
                success : function(data) {
                   var  jsonData = eval(data);
                     $("#weather").val(jsonData.weatherInfo);
                }
            });

報錯: SyntaxError: missing ; before statement

很是生氣 明明沒有少;卻提示錯誤,在網上搜了好多答案  都是把特殊符號加轉義符的方法 但是並不適合我的這種

後來發現需要指定dataType:'json' 可以完美解決

$.ajax({
                cache : true,
                type : "POST",
                url : "getDataList.action",
                async : false,
                dataType: 'json',
                error : function(request) {
                    alert("Connection error");
                },
                success : function(data) {
                    jsonData = eval(data);
                     $("#weather").val(jsonData.weatherInfo);
                }
            });

另附:在js 中擷取後台傳遞過來的json結果,一般使用var  res=eval(${data}) 而不是使用var res='${data}'

ajax 請求後台不報錯但是總是執行error function 方法

 產生此原因

1 可能你使用了非同步提交(async=true)

2 你在ajax請求中指定了dataType 但是你後台傳過來的參數沒有按照你指定的類型傳過來

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.