2016-10-05 3 views
0

기본 인증 (HTTPS over HTTPS)을 사용하여 동일한 출처 (localhost)의 WooCommerce API를 jQuery와 함께 호출하려고합니다. 서버는 Windows의 경우 XAMPP입니다. 자기 서명 인증서 (CN = localhost)를 사용하고 있습니다. 인증서는 웹 사이트의 나머지 부분을 방문 할 때 경고를 표시하지 않습니다. 신뢰할 수있는 루트 인증 기관으로 인증서를 추가하려고했습니다. 심지어 chrome : // flags/# allow-insecure-localhost (인증서가 유효하더라도)를 허용했습니다. "401 Unauthorized"가 계속 나타납니다.jQuery, HTTPS 및 WooCommerce API : 오류 401

var username = "ck_????????????????????????????????????????"; 
var password = "cs_????????????????????????????????????????"; 
var up = username + ":" + password; 
var authHeader = "Basic " + btoa(username + ":" + password); 

WooClient.prototype.getProducts = function() { 
    return $.ajax({ 
     url: "/myshop/wp-json/wc/v1/products", 
     type: "get", 
     dataType: "json", 
     xhrFields: { 
      withCredentials: true 
     }, 
     beforeSend: function (xhr) { 
      xhr.setRequestHeader("Authorization", authHeader); 
      return true; 
     } 
    }).then(function (data) { 
     return data; 
    }); 
}; 

고급 휴식 클라이언트에서 수행 한 동일한 요청은 "200 OK"와 본문의 원하는 결과를 반환합니다.

+0

다음 기회를 위해 이것을 사용하는 경우 브라우저에 API 키를 노출하는 것은 매우 나쁜 생각 물론

$.ajax({ url: "/wp-json/wc/v1/products", beforeSend: function(xhr) { xhr.setRequestHeader("Authorization", "Basic " +btoa(username+':'+password)); return true; } }); 

은 그냥 가장자리에 모든 것이 괜찮 것으로 나타났습니다. – damix911

답변

0

나는 동일한 문제가있었습니다. 또한 Edge에서는 작동하지만 Chrome에서는 작동하지 않는 것으로 나타났습니다. 내가 config를 최소한으로 제거하려고 시도하자 갑자기 어떤 이유로 작동하기 시작했다. 더 많은 것을 파기 한 후에, 당신이 에 로그인 할 때마다 같은 사이트에서으로 로그인 한 것처럼 보입니다. 개봉 중요한 일 :