JavaScript Ajax (jQuery.post) Bizarre Error: state = "rejected"

2k views Asked by At

So I've been trying to debug my jQuery.post() call, and have been getting some weird responses. I'm stuck on what to do next, if anyone had any suggestions, I'd really appreciate it.

<script type="text/javascript">
var debugresp;
var debugpost;
$("#scan .scanSide button.startScan").click(function() {
    // ...
    console.log("Scanning...");
    debugpost = $.post(
        "scan/scan.php",
        {
            "side": side
        },
        function(response) {
            console.log(response);
            /*...*/
        },
        "xml"
    );
    console.log("Sent data...");
});
<script>

The two console.log() calls outside the $.post work fine, the page returns 200 OK with valid data under the Network tab (Debug tools/Chrome), but the internal console.log(response) never fires.

If you noticed, I saved the return from $.post.

// JavaScript console, while page hasn't returned yet
debugpost.state()
// > "pending"
// After the page returns, and console.log(response) hasn't been called
debugpost.state()
// > "rejected"

I've never tried to deal with problems in jQuery.post, but I wouldn't expect "rejected" from the jqXHR that is returned from $.post.

Might anyone have more debugging suggestions or suggestions on how to approach this?

Resources:
jqXHR jQuery.post(...)

1

There are 1 answers

0
Ryan Leonard On BEST ANSWER

Problem solved: I had invalid XML that I was trying to parse.

For anyone else reading this, try jqXHR's fail(function(jqXHR, textStatus, errorThrown) to debug.