Javascript *方法正常工作,但不使用jQuery ajax
所以,我正在设置一个RESTful API,一切似乎都很顺利 它可以通过邮递员向本地服务器成功执行PUT请求:Javascript *方法正常工作,但不使用jQuery ajax,javascript,jquery,ajax,rest,http-headers,Javascript,Jquery,Ajax,Rest,Http Headers,所以,我正在设置一个RESTful API,一切似乎都很顺利 它可以通过邮递员向本地服务器成功执行PUT请求: Status Code: 200 OK Access-Control-Allow-Methods: GET, POST, PUT, LOGIN, OPTIONS Access-Control-Allow-Origin: * Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Conn
Status Code: 200 OK
Access-Control-Allow-Methods: GET, POST, PUT, LOGIN, OPTIONS
Access-Control-Allow-Origin: *
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: Keep-Alive
Content-Length: 299
Content-Type: application/json
Date: Sat, 14 Sep 2013 17:56:28 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive: timeout=5, max=100
Pragma: no-cache
Server: Apache/2.2.25 (Win32) PHP/5.3.19
X-Powered-By: PHP/5.3.19
但是,在使用ajax和以下代码时:
$.ajax({
url: SD.AJAX+'users?uname=jamie&pword=jamie',
dataType: 'json',
type: 'login',
data: {
'uname':'jamie',
'pword':'jamie'
},
crossDomain: true
});
我发现以下错误:
OPTIONS http://sexdiaires.local/users?uname=jamie&pword=jamie 405 (Method Not Allowed) jquery.js:8526
OPTIONS http://sexdiaires.local/users?uname=jamie&pword=jamie Method LOGIN is not allowed by Access-Control-Allow-Methods. jquery.js:8526
XMLHttpRequest cannot load http://sexdiaires.local/users?uname=jamie&pword=jamie. Method LOGIN is not allowed by Access-Control-Allow-Methods.
为什么,使用ajax会有什么不同,尽管我必须承认,由于某些原因,接收到的头是不同的:/
HTTP/1.1 405 Method Not Allowed
Date: Sat, 14 Sep 2013 18:00:38 GMT
Server: Apache/2.2.25 (Win32) PHP/5.3.19
X-Powered-By: PHP/5.3.19
Set-Cookie: PHPSESSID=36an511ifo3jsu6uh6a1fqoc82; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Access-Control-Allow-Origin: http://sd.local
Content-Length: 3562
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
这是因为
键入:“login”
不是有效的HTTP方法
发件人:
type(默认值:“GET”)type:String要发出的请求的类型(“POST”
或“GET”),默认值为“GET”。注意:其他HTTP请求方法,例如
此处也可以使用PUT和DELETE,但不支持它们
所有浏览器
您是否尝试过使用
类型:“PUT”
?,因为您没有指定要执行PUT请求。如果不告诉jQuery要执行什么样的请求(默认值为get),jQuery就无法知道时间的长度。是的,事实上,我并不是想在标题中写put,这只是每个人都会知道的事情。在这种情况下,我实际上想使用登录作为方法。我会尝试一下,但是如何修补、复制、清除
,仅举几个例子?