Re: [Cppcms-users] Can't jump to another page from server side
Brought to you by:
artyom-beilis
From: chenshu <csf...@gm...> - 2012-01-08 14:20:55
|
My web page is complex.And I believe this problem is nothing to do with CppCMS framework after debugging my application.The home page's html codes have been sent to browser but the Chromium finds some "Uncaught Invalid JSON" error. So thank you and sorry to waste your time. :) On 01/08/2012 10:02 PM, Artyom Beilis wrote: > I can't see what is going on in this HTML mess. > > I can't understand if you have header: > > Location: http://localhost:8081/kaimei/user_home > > And according to the log it is redirected to > > GET http://localhost:8081/kaimei/user_home > > So what is the problem? > > Once again give me an output of Wget's log in "TEXT" not HTML. > > Also according to the log it should work. > > Also setting high debug level for CppCMS web server will help to > see incoming URLs. > > > > Artyom Beilis > -------------- > CppCMS - C++ Web Framework: http://cppcms.sf.net/ > CppDB - C++ SQL Connectivity: http://cppcms.sf.net/sql/cppdb/ > > ------------------------------------------------------------------------ > *From:* ?? <csf...@gm...> > *To:* Artyom Beilis <art...@ya...>; > cpp...@li... > *Sent:* Sunday, January 8, 2012 3:49 PM > *Subject:* Re: [Cppcms-users] Can't jump to another page from > server side > > Hello,Artyom: > It's easy to retrieve detail via Chromium debug mode. > > 1. > > > Request URL: > http://localhost:8081/kaimei/create_account > 2. > > > Request Method: > POST > 3. > > > Status Code: > [302 Found] > > > 302 Found > 4. Request Headersview parsed > 1. POST /kaimei/create_account HTTP/1.1 > Host: localhost:8081 > Connection: keep-alive > Content-Length: 33 > Origin: http://localhost:8081 > X-Requested-With: XMLHttpRequest > User-Agent: Mozilla/5.0 (X11; Linux i686) > AppleWebKit/535.2 (KHTML, like Gecko) Ubuntu/11.10 > Chromium/15.0.874.106 Chrome/15.0.874.106 Safari/535.2 > Content-Type: application/x-www-form-urlencoded > Accept: */* > Referer: http://localhost:8081/kaimei/register > Accept-Encoding > <http://localhost:8081/kaimei/register%0AAccept-Encoding>: > gzip,deflate,sdch > Accept-Language: en-US,en;q=0.8 > Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 > Cookie: cppcms_session=Id308630366b70e1e8950182a3389874a > 5. Form Dataview URL encoded > 1. > > > email: > cd...@gm... <mailto:cd...@gm...> > 2. > > > pwd: > 123456 > 6. Response Headersview source > 1. > > > Connection: > close > 2. > Content-Encoding: > > > gzip > 3. > > > Content-Type: > text/html; charset=utf-8 > 4. > > > Location: > http://localhost:8081/kaimei/user_home > 5. > > > Server: > CppCMS-Embedded/0.99.11 > 6. > > > Set-Cookie: > cppcms_session=Id308630366b70e1e8950182a3389874a; > Max-Age=600; Path=/; Version=1 > 7. > > > Status: > 302 Found > 8. > X-Powered-By: > > > CppCMS/0.99.11 > > > > > > > > 1. > > > Request URL: > http://localhost:8081/kaimei/user_home > 2. > > > Request Method: > GET > 3. > > > Status Code: > [200 Ok] > > > 200 Ok > 4. Request Headersview source > 1. > > > Accept: > */* > 2. > Accept-Charset: > > > ISO-8859-1,utf-8;q=0.7,*;q=0.3 > 3. > > > Accept-Encoding: > gzip,deflate,sdch > 4. > > > Accept-Language: > en-US,en;q=0.8 > 5. > > > Connection: > keep-alive > 6. > > > Cookie: > cppcms_session=Id308630366b70e1e8950182a3389874a > 7. > > > Host: > localhost:8081 > 8. > > > Referer: > http://localhost:8081/kaimei/register > 9. > > > User-Agent: > Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.2 (KHTML, > like Gecko) Ubuntu/11.10 Chromium/15.0.874.106 > Chrome/15.0.874.106 Safari/535.2 > 10. > > > X-Requested-With: > XMLHttpRequest > 5. Response Headersview source > 1. > > > Connection: > close > 2. > Content-Encoding: > > > gzip > 3. > > > Content-Type: > text/html; charset=utf-8 > 4. > > > Server: > CppCMS-Embedded/0.99.11 > 5. > > > X-Powered-By: > CppCMS/0.99.11 > > > > ?? > Best regards > http://blog.csdn.net/sheismylife > > > On Sun, Jan 8, 2012 at 5:11 PM, Artyom Beilis <art...@ya... > <mailto:art...@ya...>> wrote: > > Can you send a headers that are returned by the web server, > for example > simulate the request with wget > > wget -d http://some/url > > And provide output (-d debug - prints all headers) > > So we can see what is send by the server. > > > Artyom Beilis > -------------- > CppCMS - C++ Web Framework: http://cppcms.sf.net/ > CppDB - C++ SQL Connectivity: http://cppcms.sf.net/sql/cppdb/ > > ------------------------------------------------------------------------ > *From:* ?? <csf...@gm... > <mailto:csf...@gm...>> > *To:* Artyom Beilis <art...@ya... > <mailto:art...@ya...>>; > cpp...@li... > <mailto:cpp...@li...> > *Sent:* Sunday, January 8, 2012 10:38 AM > *Subject:* Re: [Cppcms-users] Can't jump to another page > from server side > > Hello,Artyom: > Please see my comments below. > > ?? > Best regards > http://blog.csdn.net/sheismylife > > > On Sun, Jan 8, 2012 at 3:48 PM, Artyom Beilis > <art...@ya... <mailto:art...@ya...>> wrote: > > 1. Are you sure you call > response().set_redirect_header(...) beforeyou call > response().out()? Because this is likely the reason it > may not work. > > >> yes. > > > 2. Show me the code :-) > > My codes looks like so: > > kaimei_web_site::kaimei_web_site(cppcms::service > &srv):cppcms::application(srv){ > //web page > dispatcher().assign("/welcome" , > &kaimei_web_site::welcome , this , 1); //first page > dispatcher().assign("/register" , > &kaimei_web_site::register_client , this , 2); //register > a new account on this page > .... > //restful web method called by Javascript form client-side > dispatcher().assign("/send_email" , > &kaimei_web_site::save_email , this , 7); > dispatcher().assign("/create_account?(.+)" , > &kaimei_web_site::create_account , this , 8); > .... > > } > > //render the register html page for user > void kaimei_web_site::register_client(std::string url){ > BOOSTER_INFO("kaimei_web_site") << "enter > register_client function"; > init_session(); > > string language = this->session().get("language"); > language_cache& cache = > app_singleton_holder::Instance().cache(); > content::welcome_content content = > cache.get(language).clone_welcome_content(); > configuration& config = > app_singleton_holder::Instance().config(); > content.base_uri=config.base_uri; > content.jsonp= config.jsonp; > render("create_account","create_account_view",content); > } > > > void kaimei_web_site::create_account(std::string str){ > try{ > init_session(); > string email = request().post().find("email")->second; > string pwd = request().post().find("pwd")->second; > user_manager::create_account(email,pwd); > string language = this->session().get("language"); > > shared_ptr<web_user> user = user_manager::login(email,pwd); > if(user){ > BOOSTER_INFO("kaimei_web_site") << "login succeeded"; > this->session()["email"]=user->email; > this->session()["user_id"]=user->oid; > configuration& config = > app_singleton_holder::Instance().config(); > response().set_redirect_header(config.jsonp + > "/user_home"); //I try to redirect to new page but failed > }else{ > kaimei::response res; > res.message="Login failed!"; > res.status=kaimei::response::LOGIN_ERROR; > response().out()<<cppcms::json::value(res); > } > }catch(std::exception &ex){ > kaimei::response res; > res.message=ex.what(); > res.status=kaimei::response::CREATE_ACCOUNT_ERROR; > response().out()<<cppcms::json::value(res); > } > } > > the real value of config.jsonp > (gdb) p config.jsonp > $1 = {static npos = <optimized out>, _M_dataplus = > {<std::allocator<char>> = > {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, > <No data fields>}, _M_p = 0x80c6e24 > "http://localhost:8081/kaimei"}} > > > 3. Small example that reproduces the problem. > > >>I can create it if necessary,but need some hours. > > 4. What is the web server you are using, what protocol? > (some web servers like nginx, do not handle Status > header properly over SCGI protocol). > > > >> In my development environment,I just use cppcms and > HTTP protocol. > > Artyom Beilis > -------------- > CppCMS - C++ Web Framework: http://cppcms.sf.net/ > CppDB - C++ SQL Connectivity: > http://cppcms.sf.net/sql/cppdb/ > > ------------------------------------------------------------------------ > *From:* ?? <csf...@gm... > <mailto:csf...@gm...>> > *To:* cpp...@li... > <mailto:cpp...@li...> > *Sent:* Sunday, January 8, 2012 9:30 AM > *Subject:* [Cppcms-users] Can't jump to another > page from server side > > Hello, > I tried response().set_redirect_header(...) > function ,but it doesn't work. > If one user registers his/her account into my > web site successfully,the page will jump to user's > home page automatically. > > ?? > Best regards > http://blog.csdn.net/sheismylife > > ------------------------------------------------------------------------------ > Ridiculously easy VDI. With Citrix VDI-in-a-Box, > you don't need a complex > infrastructure or vast IT resources to deliver > seamless, secure access to > virtual desktops. With this all-in-one solution, > easily deploy virtual > desktops for less than the cost of PCs and save > 60% on VDI infrastructure > costs. Try it free! > http://p.sf.net/sfu/Citrix-VDIinabox > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > <mailto:Cpp...@li...> > https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > > ------------------------------------------------------------------------------ > Ridiculously easy VDI. With Citrix VDI-in-a-Box, you > don't need a complex > infrastructure or vast IT resources to deliver > seamless, secure access to > virtual desktops. With this all-in-one solution, > easily deploy virtual > desktops for less than the cost of PCs and save 60% on > VDI infrastructure > costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > <mailto:Cpp...@li...> > https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > > ------------------------------------------------------------------------------ > Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't > need a complex > infrastructure or vast IT resources to deliver seamless, > secure access to > virtual desktops. With this all-in-one solution, easily > deploy virtual > desktops for less than the cost of PCs and save 60% on VDI > infrastructure > costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > <mailto:Cpp...@li...> > https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > > ------------------------------------------------------------------------------ > Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't > need a complex > infrastructure or vast IT resources to deliver seamless, > secure access to > virtual desktops. With this all-in-one solution, easily deploy > virtual > desktops for less than the cost of PCs and save 60% on VDI > infrastructure > costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > <mailto:Cpp...@li...> > https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > > > > > ------------------------------------------------------------------------------ > Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex > infrastructure or vast IT resources to deliver seamless, secure access to > virtual desktops. With this all-in-one solution, easily deploy virtual > desktops for less than the cost of PCs and save 60% on VDI infrastructure > costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox > > > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users |