iT邦幫忙

0

Ajax get回傳值問題

Nick 2018-10-08 12:29:431610 瀏覽

請問各位iT邦大大們,小弟我在程式裡面用Ajax get,但想要Ajax get的success(msg)回傳值放在$.cookie()裡,請問小弟的程式碼這樣做錯誤在哪裡,小弟一直找不到錯誤,F12的Console錯誤都是說TypeError: $.cookie is not a function,但找了程式碼出問題地方,發現在本地端這樣用沒問題,在伺服器運行就出問題了,請大家幫我找出錯誤點好嘛!?
使用程式語言PHP 7.1
使用得框架為 laravel 5.5版本
在xxxx.blade.php樣板的程式碼如下:
script src="{{ URL::asset('js/jquery-3.3.1.js') }}"></script
script src="{{ URL::asset('js/jQuery.cookie.js') }}"></script
script>
function getAPI(){
jQuery.ajax({
method: "GET",
charset:"utf-8",
cache:"true",
dataType: "json",
async:false,
url: "外部API",
success : function(Data) {},
error: function(xhr, ajaxOptions, thrownError) {}
})
.done(function( msg ) {
var Rdate = new Date();
Rdate.setTime(Rdate.getTime() + (1 * 60 * 1000));
$.cookie('Linemsg', msg, {expires : Rdate});
}
}
/script>
F12的Console錯誤都是說TypeError: $.cookie is not a function指向這行程式碼錯誤$.cookie('Linemsg', msg, {expires : Rdate});
可我一直找問題點,交叉比對都是正確無誤,但就是一直顯示錯誤,都說這裡出錯,請問我哪裡出問題呢!?
請iT邦大大們幫幫小弟吧!

fillano iT邦超人 1 級 ‧ 2018-10-08 14:19:10 檢舉
後端不能設定cookie嗎?為什麼要從前端做?前後端網域不同?
Nick iT邦新手 5 級 ‧ 2018-10-17 13:31:13 檢舉
在哪裡做都會有不同的考量,我這樣做當然有考量。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
wolfwang
iT邦研究生 4 級 ‧ 2018-10-08 13:41:25

$.cookie 是 jQUery 外掛程式,目前看起來:

  1. 本地端可以遠端不行
  2. $.cookie is not a function 表示沒有 $.cookie 這個 function 有問題

應該是 $.cookie 這個外掛的路徑沒有設好,造成這個問題,可以先朝這方向找一下。

Nick iT邦新手 5 級 ‧ 2018-10-08 13:50:37 檢舉

wolfwang大大說的是引入這支cookie的js路徑有錯誤還是說程式中的$.cookie()要加入{path(/)} cookie存放路徑呢!?

wolfwang iT邦研究生 4 級 ‧ 2018-10-08 15:08:43 檢舉

我猜是引入 cookie的js路徑有誤

Nick iT邦新手 5 級 ‧ 2018-10-17 13:32:38 檢舉

cookie.js路徑沒有問題...

0
阿成
iT邦新手 5 級 ‧ 2018-10-08 13:42:51

猜測是引入庫的順序

要先引入jQuery之後
才能引入cookie.js

看更多先前的回應...收起先前的回應...
Nick iT邦新手 5 級 ‧ 2018-10-08 13:46:40 檢舉

阿成大大,你好
我有試過先引入juqery再引入cookie...失敗
引入順序對調過來...還是失敗,但錯誤都是說TypeError: $.cookie is not a function

阿成 iT邦新手 5 級 ‧ 2018-10-08 13:49:48 檢舉

那你再開發者工具可以找到$.cookie這個function嗎

你有無注意到大小寫的問題呢??
雖然有放上,但也不代表真正有引入。
一切還是要看開發者工具內的訊息。

因為一般來說,我們本機端開發大多數都還是會在win系統下做開發。
不會去碰上大小寫檔名的問題。
但linux系統要注意,不同大小寫檔名是會視為不同檔案的。
我會這樣問的原因是因為我有注意到,你的cookie那個外掛。其「q」字是大寫的。

我猜測是因為大小寫的關係,沒有正確的引入該cookie掛件進去。造成取用cookie錯誤或不存在。

Nick iT邦新手 5 級 ‧ 2018-10-17 13:34:06 檢舉

大小寫我確實沒有注意到,我去看看是否引用錯誤,謝謝提醒!

我要發表回答

立即登入回答