1

В моем расширении 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 говорит, что я должен, что мое расширение может получать только данные и не отправлять? Есть ли другая глупость здесь?

+0

'str' никогда не используется. Это намеренно? Где вы пытаетесь передать данные в примере кода? – bzlm

+1

У вас есть правильные разрешения в ваших расширениях для публикации данных в этот файл? Я просто сделал простой фрагмент, который возвращает «1» из responseText. Насколько я вижу, фрагмент хорош, если он работает на странице расширения (а не в скрипте содержимого). –

+0

@Mohamed - Вот и все. Отправьте это как ответ, и я приму его – d2burke

ответ

2

«? Вы уверены, что у вас есть соответствующие разрешения в расширениях для отправки данных в этот файл я просто сделал простой фрагмент кода, что я вернусь„1“из responseText Насколько мне известно, фрагмент хорош, если он работает на странице расширения (а не в скрипте содержимого) - Мохамед Мансур 9 января в 23:45 «

Очевидно, это ответ.

1

Попробуйте добавить Content-type и Content-length заголовки:

var str = 'ProjectMemberId='+ProjectMemberId+'&ProjectId='+ProjectId; 

var xhr = new XMLHttpRequest(); 
xhr.open("POST", "http://www.ontimepunchcard.com/scripts/punch.php", true); 
xhr.onreadystatechange = function() { ... } 

xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xhr.setRequestHeader("Content-length", str.length); 

xhr.send(str); 
Смежные вопросы