Jquery ajax url eval

时间:2015-12-02 15:46:36

标签: javascript jquery ajax

我必须根据客户端平台(移动/桌面)对两个不同的域发起ajax调用:

var baseDomain = (isMobile()) ? "http://m.test.com" : "http://www.test.com";

function AddProduct(ProductId, ButtonClientId) {
    $.ajax({
        type : "POST",
        eval("url : \""+baseDomain+"/data/call.aspx/AddToShoppingCart\",");
        contentType : "application/json; charset=utf-8",
        data : '{productId:' + ProductId + ', quantity: 1, isSingle: true}',
        dataType : "json",
        success : function(data) {
            ProductAddedSuccess(data.d, ButtonClientId);
        },
        error : ProductAddedError
    });
}

我无法通过这个,因为我总是得到“SyntaxError:missing formal parameter”。哪里我错了?

2 个答案:

答案 0 :(得分:1)

URL只是一个字符串,因此在变量中创建所需的字符串并将其分配给Ajax选项的dplyr属性:

url

错误的原因是您在匿名对象声明的中间放置了一个函数调用(var baseDomain = isMobile() ? "http://m.test.com" : "http://www.test.com"; function AddProduct(ProductId, ButtonClientId) { $.ajax({ type : "POST", url: baseDomain + "/data/call.aspx/AddToShoppingCart", contentType : "application/json; charset=utf-8", data : '{productId:' + ProductId + ', quantity: 1, isSingle: true}', dataType : "json", success : function(data) { ProductAddedSuccess(data.d, ButtonClientId); }, error : ProductAddedError }); } )!

e.g。

eval()

这对Javascript毫无意义:)

答案 1 :(得分:1)

试试这个:

$.ajax({
    type : "POST",
    url : baseDomain + "/data/call.aspx/AddToShoppingCart",
    contentType : "application/json; charset=utf-8",
    data : '{productId:' + ProductId + ', quantity: 1, isSingle: true}',
    dataType : "json",
    success : function(data) {
        ProductAddedSuccess(data.d, ButtonClientId);
    },
    error : ProductAddedError
});