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 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.