Opened 13 years ago
Closed 11 years ago
#18229 closed New feature (wontfix)
Improving the AJAX Error text version to include the contextual code and variables
Reported by: | Owned by: | ANUBHAV JOSHI | |
---|---|---|---|
Component: | Core (Other) | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | yes |
Easy pickings: | no | UI/UX: | no |
Description
The plaintext error responses for AJAX requests in 1.4 drop a lot of the stack trace context that was included in the HTML responses pre-1.4. Tools like the network response 'Preview' viewer in Chrome make it easy to navigate the HTML response to drill down into the richer context it provides. The pull request linked below maintains the 1.4 default but enables the response to be configured to use the original behavior.
Attachments (2)
Change History (20)
comment:1 by , 13 years ago
Needs documentation: | set |
---|
comment:2 by , 13 years ago
I agree we should allow this somehow for Chrome, but I'd prefer not to add yet another setting. The barrier to entry for settings is higher. Can you think of another way to solve it?
comment:3 by , 13 years ago
I can't think of an alternative that allows both behaviors without configuring which one is preferred, short of reading the developer's mind :-)
Expanding the returned plaintext to include contextual code and serialized variables (the way they appear in the HTML error result) would probably solve the issue for me. This information could be presented toward the bottom of the trace so the summarizing information is more prominent.
This would likely involve a more in-depth patch, but wouldn't require adding yet another setting. Is this approach worth pursuing, in your opinion?
comment:4 by , 13 years ago
Dave -- Sure, improving the text version to include the contextual code and variables sounds like the better plan. I agree that information should appear at the bottom, to present the most important stuff first. Have a go at implementing it!
comment:5 by , 13 years ago
Triage Stage: | Unreviewed → Accepted |
---|
Marking as accepted as there has apparently been an understanding about the issue already.
comment:6 by , 12 years ago
Has patch: | unset |
---|
Removing has patch because the pull request was closed in preference of another implementation.
comment:7 by , 11 years ago
Which other implementation was chosen?
Is there a separate ticket for it?
Should this be closed as a dupe or fixed?
comment:8 by , 11 years ago
Easy pickings: | unset |
---|---|
Needs documentation: | unset |
I think the implementation chosen was "improving the text version to include the contextual code and variables sounds". I don't think it has been implemented yet.
comment:10 by , 11 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
Summary: | Allow configuration of debug response format for AJAX errors → Improving the AJAX Error text version to include the contextual code and variables |
Version: | 1.4 → master |
comment:11 by , 11 years ago
As a possible starting point, I've used this middleware before to make it easier to read AJAX exceptions.
comment:12 by , 11 years ago
I have compared the two Templates and have added a small diff based on that.
comment:13 by , 11 years ago
Has patch: | set |
---|
comment:14 by , 11 years ago
If the changes are good, then I'll open a PR. Also is there a need to update tests here as the text response is not tested that extensively?
comment:15 by , 11 years ago
Patch needs improvement: | set |
---|
The output of the new version is much more cluttered and one of the new lines exceeds 8600 characters in my test. Please post a sample diff of the output between the old and new versions with your next revision, thanks.
by , 11 years ago
Attachment: | 18229.diff added |
---|
comment:16 by , 11 years ago
Maybe sniffing the user agent HttpRequest.META['HTTP_USER_AGENT']
and returning the HTML version for Chrome would be a better solution. Actually Firefox inspector and Firebug can also preview HTML. I wonder if we should consider dropping the plain text version for AJAX requests in light of browser improvements? May need a django-developers thread.
comment:17 by , 11 years ago
Actually I see the fact that some browsers can preview HTML from AJAX requests was already raised in the original thread, so dropping plain text probably isn't an option.
I'm having trouble coming up with a good way to present the context code and variables that doesn't seem cluttered.
@davehughes05, if you still care about this issue do you have any thoughts?
comment:18 by , 11 years ago
Resolution: | → wontfix |
---|---|
Status: | assigned → closed |
Closing given lack of follow-up from reporter. If someone feels strongly about this and wants to implement something that isn't too ugly, we'll consider it.
Original ticket: #10841
Changeset: https://code.djangoproject.com/changeset/16921