2010-10-01 369 views
2

有人可以幫忙嗎?jQuery發佈問題

我正在嘗試將優惠券功能整合到我的網站上的訂購流程中,使用jQuery發佈使用的優惠券代碼並檢查我的數據庫中存在的優惠券代碼。但是,jQuery發佈無法正常工作。這是我的代碼。

jQuery(function() { 
    jQuery("#discount-code").click(function() { 
     var coupon = jQuery("#CouponCode").val(); 
     if (coupon) { 
      alert("Coupon Used"); 
      jQuery.ajax({ 
       success: function (data) { 
        if (data) { 
         alert("DATA RECEIVED"); 
        } 
       }, 
       data: 'coupon=' + coupon, 
       type: 'POST', 
       dataType: 'json', 
       url: 'http://example.com/process-coupon.php' 
      }); 
     } 
     return false; 
    }); 
}); 

我正在使用優惠券警報,但之後沒有。我甚至沒有看到螢火蟲的發佈信息。

有人可以在這裏看到問題嗎?

+0

你可以發佈的HTML以及 – 2010-10-01 02:49:01

+1

都是在同一個域上的文件? – Reigel 2010-10-01 02:56:47

+0

查看firebug或開發工具 – sje397 2010-10-01 03:39:57

回答

2

你通常描述的問題(甚至沒有在Firebug中可見的POST)歸結爲一個簡單的問題,名爲Same origin policy。但是這只是一個猜測(儘管非常好),直到你發佈你的HTML。

+1

中的請求/響應數據可能是正確的,在這種情況下,解決方案是在您的服務器上創建一個代理腳本,它只是獲取您傳遞給它的URL,當然還包括所有POST'd變量。 – burkestar 2010-10-01 03:01:45

+0

是的,就像skymook提到的JSONP是非常不錯的選擇。 – 2010-10-01 03:06:32

+0

感謝這個答案,它幫助我解決了這個問題。我的網站使用wordpress,但是我的訂單表單位於主域的文件夾中,而不是wordpress文件的一部分。我試圖將數據發佈到wordpress插件中包含的文件。一旦我將文件移動到包含訂單表單的外部文件夾中,它就解決了問題。 – 2010-10-01 03:09:57

0

您是否嘗試將數據類型設置爲'jsonp'?這可能是因爲你的腳本在同一臺服務器上,代碼並不開心。值得嘗試作爲考驗。

1

您的數據也可能存在問題。

data : 'coupon='+coupon 

不生成json。檢出http://www.json.org/js.html並使用類似的東西:

data : JSON.stringify({'coupon':coupon}) 

要生成您的數據對象。