jQuery পোস্ট JSON


193

আপডেট: আমি var valueসার্ভারে পাস করতে চাই

হ্যালো, একই পুরানো, একই পুরানো ... :)

আমার কাছে একটি ফর্ম <form id="testForm" action="javascript:test()">এবং একটি কোড অঞ্চল বলা আছে<code id="testArea"></code>

আমি কোড অঞ্চলটিতে ডেটা স্ট্রিংফাই করতে এবং প্রদর্শন করতে এই কোডটি ব্যবহার করছি:

var formData = form2object('testForm');
document.getElementById('testArea').innerHTML = JSON.stringify(formData, null, '\t');
var value = JSON.stringify(formData, null, '\t');

আমি যা চাই তা হ'ল এই ডেটাটি কোনও জেএসএন ফাইলে প্রেরণ করা। আমি এই প্রকল্পটিতে কাজ করছি: http://ridegrab.com/profile_old/ এবং আপনি Submit Queryবোতাম টিপলে আপনি পৃষ্ঠাটির শীর্ষস্থানটি দেখতে পাবেন।

এছাড়াও আমি ডেটা প্রেরণের জন্য এই স্ক্রিপ্টের টুকরোটি ব্যবহার করতে চাই:

    function authenticate(userName, password) {
    $.ajax
    ({
        type: "POST",
        //the url where you want to sent the userName and password to
        url: 'username:password@link to the server/update',
        dataType: 'json',
        async: false,
        //json object to sent to the authentication url
        data: '{"userName": "' + userName + '", "password" : "' + password + '"}',
        success: function () {

        alert("Thanks!"); 
        }
    })
}

আবার, আমি যা চাই তা হ'ল সার্ভারে সেই জেএসওএন ডেটা প্রেরণে সক্ষম হওয়া। আমার সার্ভারটি update or POSTসঠিক জায়গায় ডেটা সেট আপ করা আছে ।


আমি এটা কাজ :) আমি কিভাবে তাদের একসঙ্গে সার্ভারে যে তথ্য পাঠাতে করা জানি না ... এমনকি যদি আমি প্রতিস্থাপন করতে পারবেন না dataসঙ্গে data: value,... !! ??
প্যাট্রিয়টিকো

প্রথমত, আপনি কি নিশ্চিত যে এটি কোনও সংযোগের সমস্যা নয়? যদি আপনি কোনও errorফাংশন বরাদ্দ করেন তবে এটি কি ডাকা হবে? যদি তাই হয় তবে কোন ত্রুটি নিয়ে?
উইজগুয়ে

1
যদিও এটি এক বছরের বেশি পুরানো হয়েছে, আমি কীভাবে এটি করতে হবে তার বিষয়ে @ প্যাট্রিয়টিকো সর্বশেষ প্রশ্নের উত্তর দেব। আপনি আজাক্স পদ্ধতিতে যে "সাফল্য" বিকল্পটি প্রেরণ করেছেন তা দেখতে পাচ্ছেন? "ত্রুটি" দিয়ে একই জিনিস করুন। যেমন "ত্রুটি: MyErrorHandlingFunction" বা "ত্রুটি: ফাংশন (ত্রুটি) {[এখানে কোড কোড পরিচালনার ক্ষেত্রে ত্রুটি]}"
vbullinger

উত্তর:


219

'ডেটা' স্ট্রিংফাইড জাভাস্ক্রিপ্ট অবজেক্ট হওয়া উচিত:

data: JSON.stringify({ "userName": userName, "password" : password })

আপনার প্রেরণ করতে formData, এটিকে এখানে প্রবেশ করুন stringify:

data: JSON.stringify(formData)

কিছু সার্ভারের জন্য application/jsonসামগ্রীর ধরণের প্রয়োজন হয় :

contentType: 'application/json'

অনুরূপ প্রশ্নের আরও বিশদ উত্তর এখানে রয়েছে: জ্যাকারি অ্যাজ্যাক্স ওয়েবসার্ভিসে জেসন পোস্ট করছেন


: @tasos আমার মনে হয় তোমার পরে কি হন stackoverflow.com/questions/5806971/...
কাইলি বন্য

এখানে ভুলটি প্রতিধ্বনিত হচ্ছে; এটি সাধারণ পরিস্থিতিগুলির জন্য ঠিক আছে।
এফএমএম

@ এফএমএম এবং জোনাস এন - আপনি কীভাবে আমার উত্তরকে সঠিকতার জন্য আপডেট করবেন তা বুঝতে সাহায্য করতে পারেন? JQuery ডক্সের উদাহরণগুলি (এখানে: api.jquery.com/jQuery.post ) এটিকে উপস্থিত করে তোলে যেন আপনি কোনও জেএস বস্তু বা একটি স্ট্রিং পোস্ট করতে পারেন যা আমাকে বিশ্বাস করতে বাধ্য করেছিল যে jQuery সমস্ত প্রয়োজনীয় স্ট্রিং সিরিয়ালাইজেশন পরিচালনা করবে led ।
কাইল ওয়াইল্ড

প্যাট্রিয়টিকো বলেছেন: "আমি যদি ভেরু মান থেকে জসন প্রেরণ করতে চাই তবে" মানটি যদি একটি অ্যারে বা কোনও অবজেক্ট না হয় তবে এটি জেএসএন বৈধ নয়।
অ্যান্ডেন্স

1
বিবেচনা করুন, কি হবে যখন আপনার তথ্য রয়েছে, উদাহরণস্বরূপ জিনিস তালিকা: { foo: [1,2,3], bar: 'baz' }। এটি foo%5B%5D=1&foo%5B%5D=2&foo%5B%5D=3&bar=baz(আনসকেপড, এটি foo[]=1&foo[]=2&foo[]=3&bar=baz) হিসাবে ফর্ম-এনকোড হবে । সম্ভবত আপনি যা সার্ভার-সাইড চান তা নয়।
এফএমএম

270

আপনি JSON এর মতো পোস্ট করেছেন

$.ajax(url, {
    data : JSON.stringify(myJSObject),
    contentType : 'application/json',
    type : 'POST',
    ...

যদি আপনি কোনও বিষয়টিকে সেটিংস হিসাবে পাস করেন ata চরসেট = ইউটিএফ -8, সম্ভবত আপনি যা চান তা নয়


@ টিমলভেল-স্মিথ কোনও পার্থক্য তৈরি করবেন না কারণ jQuery dataকোনও ক্ষেত্রেই স্ট্রিং প্রক্রিয়া করবে না
ফিল

2

যদি আপনি ক্রস ডোমেনে এই পোস্টের অনুরোধটি প্রেরণ করছেন তবে আপনার এই লিঙ্কটি পরীক্ষা করা উচিত।

https://stackoverflow.com/a/1320708/969984

আপনার সার্ভার ক্রস সাইট পোস্টের অনুরোধ গ্রহণ করছে না। সুতরাং ক্রস সাইট অনুরোধগুলির অনুমতি দেওয়ার জন্য সার্ভার কনফিগারেশনটি পরিবর্তন করা দরকার।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.