web-dev-qa-db-ja.com

has_js cookieの用途は何ですか?

Android RESTエンドポイントを使用してサービスモジュールと通信するアプリを作成しています。「has_js = 1」Cookieを=に設定せずにコンテンツを投稿するとRESTエンドポイントのJSON形式、私のコンテンツはDrupalまたはサービスモジュールで受け入れられません。

Has_js Cookieの使用とは何ですか。なぜPOSTリクエストと共に送信する必要があるのですか?

更新:

以下は、記事のコンテンツタイプを投稿するための私のコードです。 has_js = 1 Cookieを追加しないと、記事はDrupalサイトに投稿されません。

 protected Integer doInBackground(String... params) {

        //read session_name and session_id from passed parameters
        String session_name=params[0];
        String session_id=params[1];


        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://ec2-54-***-**-***.us-west-2.compute.amazonaws.com/cmac/rest/node");



        try {

            //get title and body UI elements
            TextView txtTitle = (TextView) findViewById(R.id.editTitle);
            TextView txtBody = (TextView) findViewById(R.id.editBody);

            //extract text from UI elements and remove extra spaces
            String title=txtTitle.getText().toString().trim();
            String body=txtBody.getText().toString().trim();

            //create JSON object to pass to Services endpoint
            JSONObject json= new JSONObject(" { \"title\":\""+title+"\",\"type\":\"article\",\"body\":{\"und\":[{ \"value\":\""+body+"\"}]}}");

            StringEntity se = new StringEntity( json.toString());
            se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
            httppost.setEntity(se);


            BasicHttpContext mHttpContext = new BasicHttpContext();
            CookieStore mCookieStore      = new BasicCookieStore();

            //create the session cookie
            BasicClientCookie cookie = new BasicClientCookie(session_name, session_id);
            cookie.setVersion(0);
            cookie.setDomain(".ec2-54-***-**-***.us-west-2.compute.amazonaws.com");
            cookie.setPath("/");
            mCookieStore.addCookie(cookie);
            cookie = new BasicClientCookie("has_js", "1");
            mCookieStore.addCookie(cookie);
            mHttpContext.setAttribute(ClientContext.COOKIE_STORE, mCookieStore);

            httpclient.execute(httppost,mHttpContext);

            return 0;

        }catch (Exception e) {
            Log.v("Error adding article",e.getMessage());
        }

        return 0;
    }
4

Has_js Cookieは Batch API で使用されています。このCookieがない場合、またはクライアントブラウザでJSが無効になっている場合、バッチAPIはWSODを提供します。

$ _ COOKIE ['has_js'] must die を参照してください。

サービスエンドポイントが内部でBatch APIを処理している場合、この問題が発生します。

2
Mathankumar