[Javascript] 2.x खेलें: एक सामान्य बटन के साथ AJAX अनुरोध कैसे करें


Answers

कॉल करने पर ... के लिए कुछ देखना है

Routes.javascriptRouter("myJsRoutes",

मार्गों से रूट आयात किया जाता है। मार्ग, play.api.Routes नहीं

जब मैंने इस कोड को लागू किया तो एक त्रुटि हुई, क्योंकि मुझे लगता है कि यह एपीआई से आया होगा (स्पष्ट रूप से मैं गलत था)। इसके अलावा, सबकुछ बढ़िया काम करता है !! !!

Question

इसलिए मैंने पहले काम करने के लिए AJAX अनुरोधों को सफलतापूर्वक प्राप्त कर लिया है, लेकिन मुझे हमेशा एक फॉर्म का उपयोग करना पड़ता है, और फिर सबमिट के अंत में झूठी वापसी होती है ताकि वह पृष्ठ को रीफ्रेश न करे।

मैंने हाल ही में अपनी जावास्क्रिप्ट को एक अलग फ़ाइल में स्थानांतरित कर दिया है जिसके कारण मेरे @ कमांड विफल हो गए हैं। इस वजह से मैं अपने मार्ग पर अपना यूआरएल कैसे सेट नहीं करता?

एचटीएमएल:

<button id="saveAsDefaultButton">Save as default</button>

Playframework जावा कोड:

public static Result saveDefaultPhoneForUser(String handset) {
    User currentUser = User.findByName(session("name"));
    currentUser.lastControlledHandset = theHandset;
    currentUser.save();
    return ok();
}

मार्गों:

POST    /                           controllers.Application.saveDefaultPhoneForUser(handset : String)

जावास्क्रिप्ट:

$('#saveAsDefaultButton').click(function(evt) {
        $('#errors').hide();
        $.ajax({
            type : 'POST',
            url : "controllers.Application.saveDefaultPhoneForUser",
            data : $('#controlledPhone option:selected').text(),
            dataType : "text",
            success : function(data) {
                //setError('Call succedded');
                //$('#test1').attr("src", data)
            },
            error : function(data) {
                setError('Make call failed');
            }
        });
        return false;
    });

मुझे यकीन है कि ऐसा करने का एक तरीका है मुझे बस कुछ भी भाग्य नहीं मिला है। किसी भी मदद की बहुत सराहना की।




एक सरल समाधान है, जावास्क्रिप्ट राउटर उत्पन्न करने के लिए एम्बेडेड राउटर का उपयोग करें। आप @javascriptRouter सहायक निर्देश का उपयोग करके जावास्क्रिप्ट राउटर जेनरेट कर सकते हैं, अपने एचटीएमएल पेज हेड टैग के अंदर निम्नलिखित कोड डालें (शायद मुख्य सजावट टेम्पलेट के अंदर)

<head>
    <title>Saeed Title</title>
    <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
    <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
    <script src="@routes.Assets.at("javascripts/jquery/v1.12.4/jquery.min.js")" type="text/javascript"></script>
    @helper.javascriptRouter("jsRoutes")(
        routes.javascript.MyController.getById,
        routes.javascript.MyController.getByName
    )
</head>

वाक्यविन्यास त्रुटि (Intellij में) के बारे में चिंता न करें और अपने क्रिया नाम के बाद ब्रांड्स का उपयोग न करें। अब आप अपने AJAX कॉल कोड में jsRoutes.controllers.MyController.getById(id) उपयोग कर सकते हैं।

$.ajax(jsRoutes.controllers.MyController.getById(id))
   .done( /*...*/ )
   .fail( /*...*/ );

या url प्राप्त करने के लिए jsRoutes.controllers.MyController.getById(id).url का उपयोग करें। अधिक जानकारी






Links