2016-11-19 36 views
-2

我試圖使用使用Chrome控制檯下面發送一個Ajax請求到服務器:JQuery Ajax語法錯誤?

$.ajax({ 
    url: 'http://www.adidas.co.uk/on/demandware.store/Sites-adidas-GB-Site/en_GB/Cart-MiniAddProduct', 
    data: { 
     "request": "ajax", 
     "Quantity": "1", 
     "g-recaptcha-response": "redacted", 
     "responseformat": "json", 
     "sku": "AQ5934", 
     "pid": "AQ5934_660" 
    }, 
    method: 'POST', 
    crossDomain: true, 
    contentType: 'application/x-www-form-urlencoded', 
    xhrFields: { 
     withCredentials: true 
    }, 
    complete: function(data, status, xhr) { 
     console.log(status); 
     console.log(data); 
    } 
}); 

然而,我發現了以下錯誤:

Uncaught TypeError: $.ajax is not a function 
    at <anonymous>:1:3 

我導致相信這個問題是由於語法錯誤,我找不到在下面的方法中的語法錯誤,有人可以幫我找到它嗎?

+1

你是如何加載jQuery腳本? – winseybash

+0

不應該因爲我使用的是Chrome控制檯 –

+0

jQuery是否在您使用控制檯檢查的頁面上加載? – winseybash

回答

1

發生此錯誤的原因是您的項目可能沒有jQuery庫。

你總是需要你的JavaScript文件之前添加庫正常工作,就像這樣:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script src="/your/file.js"></script> 
+0

不應該因爲我使用鉻控制檯 –

+1

你總是需要添加jquery庫,帶或不帶chrome控制檯。 –

+0

我的歉意,我不知道這一點。感謝您的幫助 –

0

首先,確保你加載jQuery庫,您可以通過使用(版本下面可以做改變):

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 

其次,從你提供的,你是不是把你的Ajax調用jQuery的文件準備函數內部的代碼的外觀。執行以下操作(第一和最後一行是新的):

$(document).ready(function(){ /* NEW LINE */ 
    $.ajax({ 
     url: 'http://www.adidas.co.uk/on/demandware.store/Sites-adidas-GB-Site/en_GB/Cart-MiniAddProduct', 
     data: { 
      "request": "ajax", 
      "Quantity": "1", 
      "g-recaptcha-response": "redacted", 
      "responseformat": "json", 
      "sku": "AQ5934", 
      "pid": "AQ5934_660" 
     }, 
     method: 'POST', 
     crossDomain: true, 
     contentType: 'application/x-www-form-urlencoded', 
     xhrFields: { 
      withCredentials: true 
     }, 
     complete: function(data, status, xhr) { 
      console.log(status); 
      console.log(data); 
     } 
    }); 
}); /* NEW LINE */ 

如果你在本地主機上測試這一點,那麼你會得到一個錯誤CORS。

XMLHttpRequest cannot load http://www.adidas.co.uk/on/demandware.store/Sites-adidas-GB-Site/en_GB/Cart-MiniAddProduct. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. 

也許你有一個單獨的腳本進行身份驗證?