Node.JS: كيفية استخدام النسبة المئوية لتسجيل الدخول طلب URL؟

0

أحاول طلب بحث بسيط عن واجهة برمجة التطبيقات من Magento2 ، ولكن يبدو أنه لا يمكنني استخدام٪ sign داخل طلب عنوان URL. هل هناك طريقة أخرى لاستخدام علامة النسبة المئوية داخل عنوان URL؟

  • ٪ _٪ بعد [القيمة]

رابط الطلب:

const request_data = {
    url: 'http://.../rest/V1/products?searchCriteria[filter_groups][0][filters][0]'+
    '[field]=name&searchCriteria[filter_groups][0][filters][0][value]=%Example%'+
    '&searchCriteria[filter_groups][0][filters][0][condition_type]=like',
    method: 'GET',
};

خطأ في وحدة التحكم:

URIError: URI malformed

at decodeURIComponent (<anonymous>)
at OAuth.deParam (/Users/Kevin/Desktop/TestingModules/node_modules/oauth-1.0a/oauth-1.0a.js:227:27)
at OAuth.deParamUrl (/Users/Kevin/Desktop/TestingModules/node_modules/oauth-1.0a/oauth-1.0a.js:245:17)
at OAuth.getParameterString (/Users/Kevin/Desktop/TestingModules/node_modules/oauth-1.0a/oauth-1.0a.js:142:132)
at OAuth.getBaseString (/Users/Kevin/Desktop/TestingModules/node_modules/oauth-1.0a/oauth-1.0a.js:124:130)
at OAuth.getSignature (/Users/Kevin/Desktop/TestingModules/node_modules/oauth-1.0a/oauth-1.0a.js:100:36)
at OAuth.authorize (/Users/Kevin/Desktop/TestingModules/node_modules/oauth-1.0a/oauth-1.0a.js:87:39)
at Object.module.exports.init (/Users/Kevin/Desktop/TestingModules/test.js:36:43)
at [eval]:1:19
at ContextifyScript.Script.runInThisContext (vm.js:50:33)

1 إجابة

2
افضل جواب

المشكلة

ال % الحرف هو حرف هروب لعناوين url وهو الحرف الأول لرموز خاصة بترميز url في عناوين url - يشير إلى بداية حرف مشفر (يتكون من % متبوعًا بشخصين سداسي عشري). سبب حصولك على URIError هو أنه عندما يتم تحليل uri ، فإن الآلة ترى % ثم ينظر إلى الحرفين التاليين لمعرفة أي حرف يتم ترميزه. وبالتالي %Ex يُخطئ في ترميز حرف (لكن x ليس حرفًا سداسيًا عشريًا لذا تحصل على URI مشوه). راجع https://en.wikipedia.org/wiki/Percent-encoding أو https://www.ietf.org/rfc/rfc1738.txt للمزيد.

الحل

لترميز علامة النسبة المئوية ، استبدل % مع %25 ، وهو ترميز علامة النسبة المئوية.

:مؤلف
فوق
قائمة طعام