2015-11-25 5 views
6

पर मैं एक RESTFul web service परियोजना जो नीचे के रूप में एक POJO है विकासशील हूँ:अजाक्स कॉल गूगल क्रोम पर काम कर रहा है, लेकिन नहीं IE 11

@XmlRootElement 
public class Input { 
    //variable declarations 

    public Input(){ 
     //default constructor 
    } 

    //constructor no 1 
    public Input(String LR, double ECH,double CSH,String APP) { 
     this.LR = LR; 
     this.ECH = ECH; 
     this.CSH = CSH; 
     this.APP = APP; 
    } 

    //constructor no 2 
    public Input(String LR, double ECH,double CSH,String APP,...) { 
     this.LR = LR; 
     this.ECH = ECH; 
     this.CSH = CSH; 
     this.APP = APP; 
     //constructor of all other parameters including these 
    } 

//getters and setters method below. 
} 

मेरे ajax इस बटन पर बुलाया जा रहा है:

<button type="submit" onClick='functionname();' class="btn btn-primary" ><span class="glyphicon glyphicon-lock"></span>Function</button> 

Controller वर्ग मेरे पास है इस प्रकार है:

@Path("/input") 
public class InputResponse { 
InputService inputservice = new InputService(); 

@PUT 
@Path("/approve") 
@Produces(MediaType.APPLICATION_JSON) 
public void approveInputRecord(Input obj) throws Exception{ 
    String LR = obj.getLR(); 
    double CSH = obj.getCSH(); 
    double ECH = obj.getECH(); 
    String APP = obj.getAPP(); 
    Input input = new Input(LR,CSH,ECH,APP); 
    input = inputservice.approveTransaction(input); 
    } 
} 

उसी के लिएक्लास के रूप में नीचे है:

public class InputService { 

CallableStatement stmt; 
Statement commitStmt; 

public InputService(){ 
    //database connection 
} 

public Input approveTransaction(Input input) throws SQLException { 
    commitStmt = dcc.con.createStatement(); 
    stmt=dcc.con.prepareCall("BEGIN APPROVRTRANSACTION(?,?,?,?); END;"); 
    stmt.setString(1, input.getLR()); 
    stmt.setDouble(2, input.getECH()); 
    stmt.setDouble(3, input.getCSH()); 
    stmt.setString(4, input.getAPP()); 
    stmt.execute(); 
    commitStmt.executeQuery("COMMIT"); 
    return input; 
} 
} 

अंदर मेरी JAVA Script ऊपर करने के लिए अपने ajax कॉल है:

var obj = { 
    LogReference : logreference, 
    EuroclearHoldings:euroclearholdings, 
    ClearstreamHoldings:clearstreamholdings, 
    Approver : loginXPID 
} 
var jsonobj = JSON.stringify(obj); 
$.ajax({ 
    url:'./webapi/input/approve', 
    type: 'PUT', 
    data:jsonobj, 
    cache:false, 
    contentType: 'application/json', 
    dataType:'json', 
    success:function(data) 
    { 
     alert('success'); 
    }, 
    error:function(xhr,textstatus,errorthrown){ 
     alert(xhr.responseText); 
     alert(textstatus); 
     alert(errorthrown); 
    } 
},'json'); 

इस के बाद मेरे कोड के रूप में अपने आवेदन Google Chrome पर ठीक काम कर रहा है, लेकिन कभी कभी काम करता है और कभी कभी Internet Explorer 11 पर नहीं। यह अजीब व्यवहार है। और दूसरी चीज जिसे मैं प्राप्त करने में असमर्थ हूं, भले ही यह Chrome पर ajax पर काम करता है, हमेशा त्रुटि में alerts प्राप्त करें। क्या कोई बता सकता है कि ऐसा क्यों है? और मैं इसे कैसे हल करूं? किसी भी मदद की बहुत सराहना की। अद्यतन

यहाँ क्रोम पर network --> Response टैब पर उत्पादन जब त्रुटि फेंक दिया जाता है। लेकिन इसके बावजूद मुझे अभी भी आउटपुट मिलता है। enter image description here

कई धन्यवाद

+0

आप 'PUT' के बजाय' POST' अनुरोधों का उपयोग करने का प्रयास कर सकते हैं। –

+0

@MadushanPerera यदि मैं 'POST' या 'PUT' का उपयोग करता हूं तो यह वही समस्या दे रहा है। लेकिन 'जीईटी' के लिए यह किसी भी ब्राउज़र पर काम नहीं कर रहा है और इनपुट '' ' – tpsaitwal

+0

त्रुटि में कोई व्यवहार्य विकल्प नहीं दे रहा है, तो आप क्रोम ब्राउज़र के 'नेटवर्क' टैब से सर्वर responce प्रदान कर सकते हैं। – MeetJoeBlack

उत्तर

7

मैं अपने Button type="submit" देख सकते हैं। यदि यह form tag के अंदर है तो फ़ाइल के action में ajax request पर कॉल करें। जैसा कि मैं उपरोक्त टिप्पणियों से देख सकता हूं यह मुद्दा हो सकता है। जैसा कि आप POST अनुरोध में कुछ परिवर्तन सबमिट कर रहे हैं और GET अनुरोध नहीं है, इसलिए त्रुटि विधि देने की अनुमति नहीं है। और समाधान को देखते हुए बस Button type='button' बदलें या पर actionform tag पर कॉल करें। यह काम करना चाहिए।

संबंधित मुद्दे