2010-10-01 76 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}) 

要生成您的数据对象。