Asking simply because if you go here for example:
http://sandbox.dereuromark.de/sandbox/ajax_examples/country_provinces_ajax.json via http you see:
{
- "name": "Not Found",
- "url": "/sandbox/ajax_examples/country_provinces_ajax.json"
}
If there was no .json extension and accessed http you get the expected error page.
Which is what I was expecting with the $this->request->onlyAllow('ajax'); but even accessing the .json (above link) you still end up with a result so the onlyAllow does not seem to only allow ajax since I can clearly see a result via http. It's just in JSON format.
There is no error / exception throw caught. It still serves up the controller action. I was under the impression that if this controller method is accessed anyway other than "ajax" throw the exception but as you can see it's still accessible.
Too me it just looks ugly when it's just a blank page and no explanation just a few brackets and text. (hence the point of customizing the error pages so it can match the look and feel of the site)
That's why I was asking about the removal of the .json extension so the end user will only know site.com/this/is/here and cake will know via the passed "ext" => 'json" param to use the correct view.
Just not display the extension to the user.
http://sandbox.dereuromark.de/sandbox/ajax_examples/country_provinces_ajax
CakePHP Sandbox App
Not Found
Error: The requested address '/sandbox/ajax_examples/country_provinces_ajax' was not found on this server.
Thanks again,
Dave
Author: dereuromark | github.com/dereuromark/cakephp-sandbox | Contact
From: cake-php@googlegroups.com [mailto:cake-php@googlegroups.com] On Behalf Of euromark
Sent: Wednesday, February 05, 2014 1:43 PM
To: cake-php@googlegroups.com
Subject: Re: DerEuroMark - Ajax and CakePHP Tutorial Question
there is no need to remove it - but of course you can.
it is good practice (that is outlined in the post if you read it) to always call the url with the correct extension of what you are expecting.
rss => .rss
xml => .xml
...
and so for an ajax requestion with a json response it would be .json
I would only call the url extension less if I was using a plain html response. That is also outlined in the post.
Usually you would want a different layout to be rendered when using json instead of html.
But yes, you can easily deactivate the subfolder here if necessary.
Am Mittwoch, 5. Februar 2014 17:22:41 UTC+1 schrieb advantage+:
First off great article!
http://www.dereuromark.de/2014/01/09/ajax-and-cakephp/
Very informative.
My only question is there a way to remove the .json extension in the url?
Or is it needed to differentiate between views?
Only other thing I came across was my AppController isAuthorized() I have based on user logged in or not
$this->layout = 'admin'; so initially I was getting errors /app/View/Layouts/json/admin.ctp', missing.
But just added $this->layout = false; to solve that.
Thanks,
Dave
--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment