первый таймер здесь так хорошо: 3.Переписывание URL-адреса, если оно 404's
Я пытаюсь написать функцию jQuery, которая перезаписывает URL-адрес Amazon, чтобы включить теги филиала, похожие на то, что делает StackExchange, но с завихрением.
Главные отличия в том, что я пытаюсь найти пользователя в ближайшем магазине Amazon Store - например, amazon.de - для немецких посетителей. Из-за того, что ASIN Amazon отличается в некоторых странах, я сначала хочу проверить новую ссылку, если это 404, я, очевидно, не хочу направить моего посетителя туда [1]
Вот мой код, который выбирает ссылки на amazon.com, захватывает номер ASIN и записывает ссылку на продукт, включая тег филиала.
var tld_table = {'GB' : ".co.uk",'DE' : ".de",'CN' : ".cn",'AU' : ".ca",'IT' : ".it",'FR' : ".fr",'CA' : ".ca",'JP' : ".jp",};
var country = $.cookie("CountryCode");
//$.cookie by http://plugins.jquery.com/files/jquery.cookie.js.txt
var tld = tld_table[country] || '.com';
var regex = RegExp("http://www.amazon.com/([\\w-]+/)?(dp|gp/product)/(\\w+/)?(\\w{10})");
$('a[href*="amazon.com"]').each(function(){
var url = $(this).attr('href');
m = url.match(regex);
if (m) { //if ASIN found
var ASIN = m[4];
var shorturl = "http://www.amazon"+tld+"/dp/" + ASIN + "?tag="+ affTag[tld];
//http test for 404
//if 404 do not rewrite
//else $(this).attr('href',shorturl);
}
});
Это прекрасно работает и будет переписать URL, но когда я ввожу Аякс в уравнение сценарий не может переписать любой URL.
EDIT
$('a[href*="amazon.com"]').each(function(){
var url = $(this).attr('href');
m = url.match(regex);
if (m) { //if ASIN found http://www.amazon.com/dp/B003DZ1Y8Q/?tag=derp
var ASIN = m[4];
var ajaxCall = $.get('ASIN.php?ASIN='+ASIN+'&tld='+tld+'&tag='+affTags[tld], function(data) {
var newlink = data;
console.log('New Link: '+newlink)
$(this).attr('href',newlink); //does not rewrite
})
ajaxCall.success(function() {
if(newlink != '404'){
$(this).attr('href',newlink);//does not rewrite
}
})
}
});
Выше код, который я пытаюсь использовать в настоящее время, ASIN.php строит & запрашивает новую ссылку, открывает его с помощью Curl PHP и возвращает либо новую ссылку или «404» ,
Я думаю, что $ (это) неправильно ссылается на ссылку, но я понятия не имею, почему.
Спасибо, я буду продолжать расследование в попытке его с некоторыми PHP. У вас есть представление о том, почему мой пример API Yahoo не переписывает URL? Я бы предпочел использовать этот метод, поскольку внешний запрос API, надеюсь, снизит нагрузку на сервер. – killgallic