В моем расширении Chrome я могу добраться до моего файла «punch.php» и получить данные обратно, проблема в том, что я, похоже, не могу передавать данные на файл. Вот мой код:Ajax Not Posting Data, Chrome Extension
jQuery.fn.punch = function(){
$(this).click(function(){
var punchBtn = $(this);
var ProjectMemberId = '1'
var ProjectId = '1'
var str = 'ProjectMemberId='+ProjectMemberId+'&ProjectId='+ProjectId;
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://www.ontimepunchcard.com/scripts/punch.php", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
$('#PunchBox').html(xhr.responseText);
if(xhr.responseText==0)
{
punchBtn.removeClass('PunchedIn');
}
else
{
punchBtn.addClass('PunchedIn');
}
}
}
xhr.send('ProjectMemberId='+ProjectMemberId+'&ProjectId='+ProjectId);
});
}//END PUNCH METHOD
Это дублирование обычного веб-приложения со всем одним и тем же кодом. Сообщение Id в 'punch.php' и является частью инструкции SQL. Заявление не удавалось с расширением Chrome и возвращало оператор ошибки, поэтому я начал повторять фактический SQL-запрос, чтобы увидеть, что он пытался сделать. Результатом был SQL-запрос с отсутствием двух идентификаторов, следовательно, ошибка и неудачный запрос.
У меня проблема синтаксиса здесь? Возможно ли, что, хотя у меня есть разрешения, установите способ, которым Google говорит, что я должен, что мое расширение может получать только данные и не отправлять? Есть ли другая глупость здесь?
'str' никогда не используется. Это намеренно? Где вы пытаетесь передать данные в примере кода? – bzlm
У вас есть правильные разрешения в ваших расширениях для публикации данных в этот файл? Я просто сделал простой фрагмент, который возвращает «1» из responseText. Насколько я вижу, фрагмент хорош, если он работает на странице расширения (а не в скрипте содержимого). –
@Mohamed - Вот и все. Отправьте это как ответ, и я приму его – d2burke