jQuery Ajax POST-Aufruf mit JSON-Rest-Web-Dienst-Problem

Will ich post-ein JSON-Objekt von meiner Seite ein Rest-WS. Aber wenn ich die Buchung json über jQuery-ajax-Aufruf als Ausgabe erhalte ich eine HTML-Seite mit "HTTP Status 405 - Methode Nicht Erlaubt" erstellen von JSON, die ich am senden von Rest-Web-Service. Bitte beachten Sie die folgenden code-snippet.

Bin ich mit Hilfe von jquery version 1.11.3.

http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js

jQuery-Ajax-Call:

 $.ajax({
        url: "http://localhost:8080/MyWebService/api/myService/jsonpost",
        method: "POST",
        data: jsonObj,
        dataType: 'application/json',
        contentType: "application/json",
         success: function(result){
              alert(result);
         },
         error(){
             console.log('Error');
         }
    });

Bitte beachten Sie meine rest-web-service läuft in meiner lokalen tomcat.

Finden Sie meine Rest-Web-Service-POST-code.

@POST
@Path("/jsonpost")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String crunchifyJsonPostREST(SampleVO input) throws JSONException{
    SampleVO sampleVO = input;
    return new Gson().toJson(sampleVO);
}

VO:

public class SampleVO {

private String name;

/**
 * @return the name
 */

@XmlElement
public String getName() {
    return name;
}

/**
 * @param name the name to set
 */
public void setName(String name) {
    this.name = name;
}

}

Mein Maven-Abhängigkeit:

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.8</version>
    </dependency>

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.8</version>
    </dependency>

Firebug Details:

Finden Sie meine ajax-request-Header.

jQuery Ajax POST-Aufruf mit JSON-Rest-Web-Dienst-Problem

Finden Sie meine ajax-response und response-HTML.
jQuery Ajax POST-Aufruf mit JSON-Rest-Web-Dienst-Problem
jQuery Ajax POST-Aufruf mit JSON-Rest-Web-Dienst-Problem

Brauchen Ihre Hilfe, um dieses Problem zu beheben.

Dank Voraus.

Lösung:

Nach viel googeln habe ich eine Lösung gefunden. Jetzt bin ich mit HTTP-Proxy-Servlet.

Habe ich crated eine java web-Anwendung mit meinem html-Seite, die den ajax-Aufruf und aus meiner ajax-call rufe ich eine URL in derselben Domäne befinden. Bitte mein ajax-call.

 $.ajax({
        url: "rest/api/crunchifyService/jsonpost",
        method: "POST",
        data: JSON.stringify(jsonObj),
        dataType: 'json',
        contentType: "application/json",
         success: function(result,status,jqXHR ){
              //Do something
         },
         error(jqXHR, textStatus, errorThrown){
             //Do something
         }
    }); 

Nun habe ich dieses gemacht derselben Domäne aufrufen mapping mit org.mitre.dsmiley.httpproxy.ProxyServlet. Entnehmen Sie bitte meiner web-xml.

<servlet>
    <servlet-name>proxy</servlet-name>
    <servlet-class>org.mitre.dsmiley.httpproxy.ProxyServlet</servlet-class>
    <init-param>
        <param-name>targetUri</param-name>
        <param-value><!-- Cross domain URL goes here --></param-value>
    </init-param>
    <init-param>
        <param-name>log</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>proxy</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

Nun meine ajax ruft das Proxy-Servlet und es wird umgeleitet, um die CROS Ziel-Rest-Web-Service.

Bitte beachten Sie die folgende URL, erhalten Sie mehr details.

https://github.com/mitre/HTTP-Proxy-Servlet

Sind Sie sicher, dass http://localhost:8080/MyWebService/api/myService/jsonpost ist zugänglich über eine POST-Anfrage? Es scheint, dass es nicht.
wie Sie sagen, dass die URL nicht erreichbar POST anfordern? Eine Sache, die ich erwähnen möchte, dass wenn ich den Aufruf der URL mit Ajax gibt es keinen Treffer auf meine web-service-server.
Sie haben andere Ressourcen, die Sie dienen aus Ihrer web-Anwendung (mit Jersey)?
HOLEN ist in Ordnung. Problem mit der POST nur.
Ajax-Codes bereits Hinzugefügt, in der Spitze der Abschnitt "Beschreibung".

InformationsquelleAutor Suvonkar | 2015-06-29

Schreibe einen Kommentar