জিকুয়েরি আজাক্স পোস্টের পরিবর্তে জিইটি প্রেরণ করছে


87

নিম্নলিখিত কোডটি একটি পোষ্ট HTTP অনুরোধের পরিবর্তে একটি জিইটি ট্রিগার করে।

function AddToDatabase() {
  this.url = './api/add';
}

AddToDatabase.prototype.postData = function(dataToPost) {
$.ajax({
    type: "POST",
    url: this.url,
    data: dataToPost,
    context: this,
    success: this.onSuccess
  });
};


var AddToDatabase = new AddToDatabase();
data = {data: 'coucou'};
AddToDatabase.postData(data);

কেন, এবং কীভাবে আমি একটি পোস্ট পেতে পারি?


আমি গুগল ক্রোম পরিদর্শন এবং ফায়ারফক্স পরিদর্শন করে দেখছি যে ব্রাউজারটি একটি জিইটি প্রেরণ করে। এটি ক্রোম থেকে এসেছে:

ইউআরএল অনুরোধ করুন: http: // লোকালহোস্ট / নমুনা কোড / আপডেট% 20MYSQL / এপিআই / অ্যাড / অনুরোধ পদ্ধতি: GET স্থিতি কোড: 200 ঠিক আছে


সলভড

'./Api/add' নামক ইউআরএলটি আসলে './api/add/index.php' এ পোস্ট করা উচিত। './Api/add /index.php' বা './api/add /' কলিংটি আমাকে একটি পোষ্ট অনুরোধ দেয়।

এটি কেবল একটি ভুল ইউআরএল ছিল, তবে কোনও কারণে আমি '.api / add /' এ একটি সফল জিইটি অনুরোধ পাচ্ছি।


4
কেন আপনি মনে করেন এটি জিইটি অনুরোধ হবে?
ভিক্টর এস

4
আপনি ফায়ারব্যাগে খোলা নেট প্যানেল দিয়ে ফায়ার ফক্সে এজাক্স কল চালানোর চেষ্টা করেছেন?
ফ্যাবরিজিও ক্যাল্ডেরান

4
পরীক্ষা - আপনি যদি এটি চালনা করেন এবং নেটওয়ার্ক প্যানেলটি পরীক্ষা করেন তবে দেখতে পাবেন এটি একটি পোস্টের অনুরোধ প্রেরণ করে
ভিক্টর এস

4
@ টাকসন - যেমন আমি ইতিমধ্যে লিখেছি - আপনার .htaccess ফাইলটি পরীক্ষা করুন। সম্ভবত এটি পুনরায় লেখার পরিবর্তে পুনর্নির্দেশ করে makes মূলত, আমি দেখতে পাচ্ছি যে জেএস ঠিক আছে (url এ সেই বিন্দুর প্রত্যাশা করুন './api/add' যা আমাকে বিভ্রান্ত করে)। সুতরাং এটি সার্ভারসাইড ইস্যুর মতো দেখতে আরও বেশি লাগে। এবং আপনার প্রশ্নে তথ্য নির্দিষ্ট সহায়তা দেওয়ার জন্য যথেষ্ট নয়
ভিক্টর এস

4
উত্তরটি হিসাবে সমাধানটি যুক্ত করুন
অ্যাডাম লিঞ্চ

উত্তর:


103

এমভিসিতে কিছু সমস্যা। কোনও কারণে আমি যখন [এইচটিটিপোস্ট] সরিয়ে ফেলি তখন এটি প্রত্যাশার মতো কাজ করে, যদিও আমি এজাক্সকে পোষ্ট ব্যবহার করতে বলছি।

  • এটি আপনার ব্যবহার করা প্রয়োজন দেখা যাচ্ছে

প্রকার: "পোস্ট"

  • যদিও jQuery পৃষ্ঠায় উদাহরণটি ব্যবহার করতে বলে

পদ্ধতি: "পোস্ট"

এখন এটি পোস্ট

ডকুমেন্টেশন খননের পরে আমি এটি খুঁজে পেয়েছি।

এখানে চিত্র বর্ণনা লিখুন


6
এই আমি সমস্যা ছিল সমস্যা ছিল। বুঝতে পারিনি যে বিকল্পটির নামটি 1.9 এ পরিবর্তিত হয়েছে। ভেবেছিলেন এটি সর্বদা "পদ্ধতি"
বিল গ্যারিসন

4
আমি নিশ্চিত হওয়ার জন্য উভয়কেই অন্তর্ভুক্ত করতে কোনও সমস্যা দেখছি না। { method : "POST", type: "POST" }
স্কট

হ্যাঁ আপনি যা চান কনস্ট্রাক্টারে অন্তর্ভুক্ত করতে পারেন, তবে সামঞ্জস্যের জন্য এই দুটোকেই অন্তর্ভুক্ত করা সত্যিকার অর্থে বোঝা যায় না। বেশিরভাগ লোক এখন যে কোনও উপায়ে 1.11 বা 2.1 ব্যবহার করবে। এটি কেবল 1.4.3 বা 1.6.2 থেকে আপগ্রেড করার পরে সমস্যার সৃষ্টি করে
পাইোটার কুলা

4
শুক্রবার একেবারে নতুন এপিআই ব্যবহার করার জন্য একটি পুরানো ফ্রন্টএন্ড আপডেট করে আমি এটি ঠিক করার চেষ্টা করে এতক্ষণ ব্যয় করেছি। তোমাকে অনেক ধন্যবাদ!
NobleUplift

31

আমি এই বিষয় ছিল এবং প্রতি @ FAngle এর পরামর্শ এটি ছিল কারণ আমার .htaccess স্ল্যাশ trailing সরানোর ছিল - এবং আমি করতে URL সেট করেছে /ajax/foo/bar/এবং /ajax/foo/bar। পুনঃনির্দেশ অনুরোধটি POST থেকে GET এ পরিবর্তন করে। / এবং সমস্যার সমাধান!


এটি আমার জন্য মূল প্রশ্নের মধ্যে উল্লিখিত সঠিক সমস্যার সমাধান করেছে। আমি Wamp 3.0.6 এ ল্যারাভেল অ্যাপ্লিকেশনটি হোস্ট করছি
terlter Kağan Öcal

10

URL টি './api/add'আসলে পুনঃনির্দেশিত হয়েছে './api/add/index.php'। তাই এই উদ্ভট দিকটি প্রভাবিত করে যা পুনর্নির্দেশের পরে নতুন অনুরোধটি GETপরিবর্তে প্রেরণ করে প্রেরণ করেPOST

সমাধান

  • সম্পূর্ণ ইউআরএল ব্যবহার করুন './api/add/index.php'
  • বা একটি স্ল্যাশ যোগ করুন './api/add/'

6

আমার পোষ্ট একটি জিইটি প্রেরণ করছিল সেদিকেও আমি এই আচরণটি লক্ষ্য করেছি। দৃশ্যটি বেশ অনন্য, তবে এটি কারও পক্ষে সহায়তা করবে।

এটি আমার ব্যবহারকারী ভূমিকা-সম্পাদনা পৃষ্ঠায় আমার সাথে ঘটছিল, যেখানে আমি কোনও ভূমিকা চেক করা বা চেক না করা অবস্থায় তাত্ক্ষণিক পদক্ষেপ হিসাবে এজ্যাক্স (পোস্ট) ব্যবহার করছিলাম।

আমি যখনই তাদের ভূমিকা তথ্য পরিবর্তন করে যাতে তাদের দাবিগুলি রিফ্রেশ হয় সে জন্য ব্যবহারকারীকে পুনরায় প্রমাণীকরণের জন্য সার্ভারটি কনফিগার করা হয়েছিল (এবং তাদের পুনর্নির্দেশ)।

নৃশংস চক্রটি এখানে শেষ হয়েছিল:

  1. প্রথম ভূমিকা আপডেট - পোস্ট - 200 সাফল্য

  2. পরবর্তী ভূমিকার আপডেট - পোস্ট - 302 পাওয়া গেছে -> পুনঃনির্দেশ (আমি ক্রোমের নেটওয়ার্ক মনিটরের চেয়ে ফিডলারের ব্যবহার না করা পর্যন্ত আমি এটি লক্ষ্য করিনি)

  3. (২) (একই ইউআরএল) থেকে কল পুনর্নির্দেশ করুন - পান - 404 পাওয়া যায় নি (যেহেতু আমি কেবল পোস্টের অনুমতি দিয়েছি)

  4. যান (1)

আমি যখন একটি এজাক্স অনুরোধটি (স্বীকৃত প্রকারের ভিত্তিতে) সনাক্ত করেছিলাম তখন সার্ভারটি পুনরায়-প্রমাণীকরণ / দাবি আপডেটগুলিকে বাইপাসে পরিবর্তন করে শেষ করেছি।


ওহ! অনুরূপ কিছু মুখোমুখি। স্পষ্টতই, আমার নিয়ামক স্তরে, এটি একটি সেশন প্যারামিটারের প্রত্যাশা করছিল যা আমি নতুন নিয়ামকের শেষ পয়েন্টে অন্তর্ভুক্ত করিনি, এবং এটি একটি 302 এবং তারপরে একটি জিইটি করছে। ধন্যবাদ বন্ধু.
নিম্মা হিরণ্য

5

আমি দেখতে পেলাম যে dataType: 'jsonp'এটি ব্যবহার করার সময় একটিকে অনুরোধ রূপান্তর করে GET। আমি এটা পরিবর্তন dataType: 'json'এটা থেকে পরিবর্তিত GETকরা POST


আপনি কেন এই আচরণটি পর্যবেক্ষণ করার কারণ দেখিয়েছেন?
সৌরভ সারাতে

@ সৌরভসারাথে - জেএসওএনপি স্ক্রিপ্ট উপাদানগুলি তৈরি করে কাজ করে যা কেবল জিইটি অনুরোধ উত্পন্ন করতে পারে।
কোয়ান্টিন

3

আমার একটি অনুরূপ সমস্যা ছিল এবং আমি https://আমার ইউআরএল থেকে হার্ডকোড সরিয়ে দেওয়ার সাথে সাথে এটি আমার জন্য কাজ শুরু করে ।

jQuery.ajax({
 type: "POST",
 url: "www.someurl.com",//instead of "https://www.someurl.com"
 data: { foo:"bar"},
 success: function(d){ console.log(d); },
 dataType: "JSONP"
});

এটি HTTP এবং HTTPS (যেমন আপনার www.someurl.com এর কোনও বৈধ শংসাপত্র নেই) এর মধ্যে সমস্যার মতো মনে হচ্ছে
অ্যালেক্সিস উইলক

2

আমার জন্য আপনার কোডের টুকরোগুলি ঠিক আছে, তবে আপনি যদি নিশ্চিত হতে চান তবে আপনি $ .জ্যাক্সের পরিবর্তে $ .পোস্ট ব্যবহার করতে পারেন

$.post('ajax/test.html', function(data) {
 $('.result').html(data);
});

jquery লিঙ্ক: http://api.jquery.com/jQuery.post/


8
postaj .জ্যাক্সের জন্য কেবল একটি শর্টহ্যান্ড পদ্ধতি ({প্রকার: 'পোস্ট'})
ভিক্টর এস

হ্যাঁ, তবে আপনার কোডটি দেখতে দুর্দান্ত। যখন আমি এটি পরীক্ষা করছি, এটি কিছু পোস্টের জন্য অনুরোধ করেছে
Mr_DeLeTeD

1

আপনার .htaccess ফাইলটি পরীক্ষা করে দেখুন বা অন্য কোনও জিনিস অনুসন্ধান করুন যা আপনার অনুরোধটিকে পুনর্নির্দেশ করতে পারে


1

আমার একই সমস্যা ছিল এবং এই প্রশ্নটি পেয়েছি তবে উত্তরগুলি আমার সমস্যার সমাধান করেনি। আমি শেষ পর্যন্ত contentTypeএজ্যাক্স অনুরোধে ক্ষেত্রটি সরিয়ে এটি সমাধান করব ।

contentType: "application/json",

1

আমার এই সমস্যাটি ছিল এবং এটি আইআইএস-এর একটি URL পুনর্লিখনের মডিউল হিসাবে পরিণত হয়েছিল।

আমি এএসপি.এনইটি এমভিসি এবং ওয়েবএপিআই ব্যবহার করছি। ছোট ছোট ইউআরএলগুলিকে বাধ্য করার জন্য আমি নিয়ম তৈরি করেছি যাতে সামাজিক নেটওয়ার্কগুলি দুটি পৃথক পৃষ্ঠার মতো একই URL না দেখে view

উদাহরণ স্বরূপ:

" http://url.com/View/Someoming/123GuidIdSomething "

বনাম

" http://url.com/view/something/123 গাইডডোসমোথিং "

এটি যাইহোক, আমার এজ্যাক্স অনুরোধগুলির সাথে একরকম গণ্ডগোল করছে। আমি নিয়মটি অক্ষম করে দিয়েছি এবং সমস্যাটি সমাধান হয়েছে।


0

খুব সাধারণ ভুলটি হ'ল আমরা বোতামের টাইপটি জমা হিসাবে ব্যবহার করছি এবং ফর্মের পদ্ধতিটি পরিবর্তন করছি না (যা পূর্বনির্ধারিতভাবে পাওয়া যায়)

নিশ্চিত করুন যে আপনি বোতামের প্রকারের জমাটি ব্যবহার করছেন না এবং যদি আপনি ফর্ম পদ্ধতিটি পোস্ট করতে পরিবর্তন করেন তবে

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