Por que minha resposta json é uma página cheia de código-fonte

Eu tenho uma checkbox de seleção simples, no clique, envia XHR para a página do PHP, php processa corretamente e uso json_encode($response) para retornar. Mas em vez de um simples verdadeiro ou falso, recebo o código fonte da página e está causando um “parsererror”, é claro. ajax chama da seguinte forma

 $.ajax({ type: "post", url: "myprocessor.php", dataType: 'json', data: { "id" : idnumber, "action": "makeLive", "isLive" : "1" }, beforeSend: function(data) { $("#ajaxInProgress").addClass('progress'); }, success: function(data) { $("#status").removeClass().addClass((data.error === true) ? 'error' : 'success').text('Success! Appraiser is NO LONGER Live ').slideDown('slow'); }, error: function(data) { $("#status").removeClass().addClass('error').text(' - Changing the Live status for this appraiser to "Not Live" has failed - APPRAISER IS STILL LIVE IN SYSTEM, please try again').slideDown('slow'); }, complete: function(data) { $("#ajaxInProgress").removeClass('progress'); setTimeout(function() { $("#status").slideUp('slow').removeClass(); },2000); } }); 

O php que eu postei é o seguinte:

 if (isset($_POST['action'])) { if($_POST['action']=='makeLive') { $checkappraiser=mysql_query("SELECT * FROM table WHERE id='".mysql_real_escape_string($_POST['id'])."'"); if (mysql_numrows($checkappraiser)>0) { $livesetting=mysql_result($checkappraiser,0,"live"); $livesetting=!$livesetting; $runSql = mysql_query("UPDATE table SET live='$livesetting' WHERE id='".mysql_real_escape_string($_POST['id'])."'"); if(!$runSql) { $return['error'] = true; } else { $return['error'] = false; } } } echo json_encode($return); } 

Qualquer sugestão seria excelente. Estou obtendo os dados apropriados passados ​​Eu estou obtendo os dados corretos atualizados no DB Minha resposta está retornando como um erro de analisador porque está tentando analisar o código fonte como uma matriz do json.

Apenas uma verificação rápida, você coloca < ?php no início do seu arquivo php?

Isso, ou você está fazendo algo errado em seu servidor web, não passando arquivos para o PHP corretamente. Atingir o arquivo php diretamente carrega a origem ou o resultado?

Se você clicar em page.php, ele carrega a mesma coisa que se você atinja a página.phP ou pHP, etc.? É importante para os filtros do servidor web, dependendo do servidor web …

Se você usa tomcat para java, por exemplo … você pode desativar a sensibilidade de maiúsculas e minúsculas para encontrar arquivos, mas não desativa a sensibilidade de maiúsculas e minúsculas para mapear arquivos para filtros ou servlets, então .jsp carregaria o servlet jsp, mas .jsP não faria.