title: Jquery S.Ajax error handler being executed if readystate=4 and status=200
body: <p>I'm doing an $.ajax call, which is returning a json response and all seems fine, but instead of the success handler being invoked, the $.ajax error handler is invoked even though the readystate=4 and the status=200.</p>
  
  <p>The $.ajax call is:-</p>
  
  <pre><code>    $.ajax({
          url: 'inc/ajax_printorder.asp',
          type: "GET",
          data: data,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          cache: false,
          success: function (sendresponse) {
              var message = (typeof sendresponse.jsonresp) == 'string' ? eval('(' + sendresponse.jsonresp + ')') : sendresponse.jsonresp;
              if (message[0].ok == '1') {
                  var order = window.open('', 'PrintWindow', 'width=600,height=600');
                  var html = '&lt;html&gt;&lt;head&gt;&lt;title&gt;Print Your Order&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;div id="myprintorder"&gt;' + $('&lt;div /&gt;').append(message[0].msg) + '&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;';
                  order.document.open();
                  order.document.write(html);
                  order.document.close();
                  return false;
              };
          },
          error: function (xhr, err) {
              alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
              alert("responseText: " + xhr.responseText);
          }
      });
  </code></pre>
  
  <p>and from Firebug, the ajax response is:-</p>
  
  <pre><code>{"jsonresp":[{"__type":"sendresponse","ok":"1","msg":"&lt;h1&gt;Your www.sandwichlunchesnewbury.co.uk order on 02/05/2011 00:34:01&lt;/h1&gt;&lt;p&gt;Website order from www.sandwichlunchesnewbury.co.uk on 02/05/2011 00:34:01 from:- &lt;/p&gt;&lt;table width="60%" style="border:1px solid blue;padding:5px;"&gt;&lt;tr&gt;&lt;td&gt;Name&lt;/td&gt;&lt;td&gt; a &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Phone&lt;/td&gt;&lt;td&gt; b &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Email&lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Business name&lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Delivery address&lt;/td&gt;&lt;td&gt; c &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Date food required&lt;/td&gt;&lt;td&gt; Monday, 02/05/2011 &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Time food required&lt;/td&gt;&lt;td&gt; 10 Am &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Just Sandwiches (standard)&lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Just Sandwiches (gourmet)&lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Just Baguettes (standard)&lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Just Baguettes (gourmet)&lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Gourmet Bread Sandwiches&lt;/td&gt;&lt;td&gt; 2 &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sausage rolls&lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cookie boxes&lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Total price&lt;/td&gt;&lt;td&gt; &amp;pound;50.00 &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Other info &amp; special instructions &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;"}]}
  </code></pre>
  
  <p>Any thoughts on why its going to error rather than success?</p>
  
  <p>Thanks</p>
  
  <p>epx</p>