我必须根据客户端平台(移动/桌面)对两个不同的域发起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”。哪里我错了?
答案 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
});