تعطيل سياسة المنشأ نفسها / صنع المجال عبر الفيديو XMLHTPRECESSS في WebKit WebViews؟

StackOverflow https://stackoverflow.com/questions/2421224

سؤال

أرغب في تعطيل نفس سياسة الأصل على XMLHTPREQUESTS في بلدي WebViews WebViews. لدي التحكم في الصفحات المحملة / التعليمات البرمجية التي يتم تنفيذها في WebView، لذلك لا أهتم بتنفيذ سياسة الأصل نفسه. أود تقديم طلبات عبر المجال.

لقد حاولت تطبيق Webpolicydelegate و Webresourceloaddelegate، لكن لا يبدو أنهم يطلق عليهم xmlhtpprequests.

هل كانت مفيدة؟

المحلول

void WebSettingsImpl::setWebSecurityEnabled(bool enabled)
{
    m_settings->setWebSecurityEnabled(enabled);
}

نأمل أن هذا هو ما تحتاجه! يمكنك أن ترسل لي رسالة ل WebKit.

نصائح أخرى

أعتقد أنك سوف تكافح للعثور على أي حال للقيام بذلك بطريقة مفيدة لك. هل اعتبرت JSONP بدلا من XHRS؟ http://en.wikipedia.org/wiki/json.

نظرة عامة على المستوى الرفيع المستوى هو أن JSONP يستخدم نفس الآلية لطلب البرامج النصية الخارجية كما تستخدم أعلاه. الفرق هو أن الخادم الخاص بك سوف يتعرف على هذا وسيقوم بتعبير استجابة JSON كوسيطة لطريقة رد الاتصال. عندما يتلقى موقعك هذا "البرنامج النصي"، فإنه ينفذه بذلك إرجاع البيانات مباشرة في طريقة رد الاتصال بك.

إذا كنت قادرا على استخدام إطار عمل مثل JQuery، فسيتم التعامل مع معظم جانب العميل بشفافية لك. في الواقع، سوف تستخدم نفس الأساليب تقريبا التي تستخدمها لطلبات XHR (AJAX). تحقق من ذلك هنا: http://api.jquery.com/jquery.getjson/

يمكنك محاولة إضافة Access-Control-Allow-Origin: * رأس استجابة الخادم. لا أعتقد أنه مدعوم من قبل جميع المتصفحات رغم ذلك.

مزيد من المعلومات: https://developer.mozilla.org/en/http_access_control.

كنت أبحث عن كيفية القيام بذلك على OSX. اتضح webpreeferences. لديه طريقة خاصة: setWebSecurityEnabled. وبعد اضبط هذا على خطأ وينبغي أن يعمل.

http://trac.webkit.org/browser/trunk/source/webkit/mac/webview/webpreferences.mm؟rev=111350#l1011.

لذلك على سبيل المثال:

NSString* noSecurityPreferencesId = @"noSecurity";
WebPreferences* prefs = [[WebPreferences alloc] initWithIdentifier: noSecurityPreferencesId];
[prefs setWebSecurityEnabled: false];
[webView setPreferencesIdentifier: noSecurityPreferencesId];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top